我正在尝试使用下面的代码在我的数据库中插入值。但是它没有输入值。我想调试&打印我尝试$stmt->error
或$stmt->errorInfo()
的任何错误消息,但没有任何对我有用。
$stmt = $this->conn->prepare("INSERT INTO users(name) values(?)");
$stmt->bind_param("s", "dhieaj");
$result = $stmt->execute();
echo $stmt->errorInfo();
$stmt->close();
// Check for successful insertion
if ($result){
// User successfully inserted
return USER_CREATED_SUCCESSFULLY;
}
答案 0 :(得分:1)
我尝试在我的本地AppEngine服务器上运行相同的代码,以及我的调查结果:
原始代码:
$stmt = $this->conn->prepare("INSERT INTO users(name) values(?)");
$stmt->bind_param("s", "dhieaj");
$result = $stmt->execute();
echo $stmt->errorInfo();
$stmt->close();
// Check for successful insertion
if ($result){
// User successfully inserted
return USER_CREATED_SUCCESSFULLY;
}
<强>实验:强>
$stmt->bind_param("s", "dhieaj");
// failed with error ( <b>Fatal error</b>: Cannot pass parameter 2 by reference in <b>C:\...)
所以我将该行修改为:
$param="dhieaj";
$stmt->bind_param("s", $param);
我得到的下一个错误是: echo $ stmt-&gt; errorInfo(); //(调用未定义的方法mysqli_stmt :: errorInfo()) 所以我评论了这条线。
然后我将你的return语句修改为echo,因为我只是你发布的一个片段。
我也注意到你的conn缺少&#39; $&#39;申报密钥。 ($康恩)。
最终代码:
$stmt = $conn->prepare("INSERT INTO users(firstname) values(?)");
$p="dhieaj";
$stmt->bind_param("s", $p);
$result = $stmt->execute();
// echo $stmt->errorInfo();
$stmt->close();
// Check for successful insertion
if ($result){
// User successfully inserted
echo "USER_CREATED_SUCCESSFULLY";
}
答案 1 :(得分:0)
实际上这里提到的代码是由DLastCodeBender&#39;是正确的,但我仍然无法解决我的问题。问题是 MAMP 服务器。我无法使用MAMP运行Slim框架。所以我安装了 XAMPP 我的mac&amp;所有API都适用于我。