Php INSERT INTO请求无声地失败

时间:2013-11-12 02:19:56

标签: php mysql insert

我的代码如下:

$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都是要插入的有效值。它不会在脚本或服务器错误日志上引发错误。我很困惑为什么它不添加一行。我的代码中有一个明显的错误吗?

谢谢!

编辑:添加新代码,同样的事情。执行也正在传递。

2 个答案:

答案 0 :(得分:1)

INSERT没有失败 - 你只是没有找错误。您正在检查prepare来电的退货状态,而不是execute来电的退货状态。试试这个:

$stmt->bind_param("sss", $maxID, $provider, $ID);
$stmt->execute() or die($stmt->error);
$stmt->close();

答案 1 :(得分:0)

PHP mysqli Insert not working, but not giving any errors

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