gpt4 book ai didi

php - 如何用 PHP 调试 prepare 语句?

转载 作者:搜寻专家 更新时间:2023-10-30 23:34:25 24 4
gpt4 key购买 nike

我正在尝试使用以下代码在我的数据库中插入值。但它没有输入值。我想调试并打印我尝试过的任何错误消息 $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;
}

最佳答案

我尝试在我的本地 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->errorInfo();//(调用未定义的方法 mysqli_stmt::errorInfo())所以我评论了这条线。

然后我将你的返回语句修改为回显,因为我的只是你发布的一个片段。

我还注意到您的 conn 缺少“$”声明键。 ($conn).

最终代码:

$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";
}

关于php - 如何用 PHP 调试 prepare 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44933350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com