PHP 插入到请求以静默方式失败



我的代码如下:

$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 插入不起作用,但不给出任何错误

原来这是我的解决方案。 ^ 自动提交已关闭。

最新更新