我的代码如下:
$stmt = $this->db->prepare("INSERT INTO favorites (id, profile_id, item_id) VALUES(?, ?, ?)");
if ($stmt)
{
$stmt->bind_param("sss", $maxID, $provider, $ID);
if(!$stmt->execute())
{
echo ("Error" . $this->db->error);
return $this->db->error;
}
else
{
echo("success");
}
$stmt->close();
}
else
{
echo ("Error" . $this->db->error);
return $this->db->error;
}
尽管我尽了最大努力,但这份准备好的声明没有任何作用。当我直接在 MYSQL 提示符中键入值时,它工作正常。但是,当我运行此脚本时,它什么也不做。
注意:$maxID、$provider$ID都是要插入的有效值。它不会在脚本或服务器错误日志上引发任何错误。我对为什么它不添加一行感到非常困惑。我的代码中是否存在明显的错误?
谢谢!!
编辑:添加了新代码,同样的事情。执行也在传递。
INSERT
不会静默失败 - 您只是没有寻找错误。您正在检查prepare
呼叫的返回状态,而不是execute
呼叫的返回状态。试试这个:
$stmt->bind_param("sss", $maxID, $provider, $ID);
$stmt->execute() or die($stmt->error);
$stmt->close();
PHP mysqli 插入不起作用,但不给出任何错误
原来这是我的解决方案。 ^ 自动提交已关闭。