MySQLi编写的insert语句失败

时间:2014-02-17 08:31:59

标签: php sql mysqli

我正在更新我的PHP以使用mysqli::而不是mysql_*,我遇到了INSERT语句的问题。我有以下声明:

$stmt = $link->prepare("INSERT INTO `table` (`a`, `b`, `c`) VALUES(?, ?, ?)");
$stmt->bind_param("sss", $a, $b, "0");
$stmt->execute();

我已检查过$stmt,这是一个正确的mysqli_stmt对象。它已正确准备,但由于某种原因,该语句将不会执行。我刚收到服务器的500错误。

我错过了什么?

修改

我已确定问题来自bind_param方法。

修改2

好的,所以PHP给我的错误是:

  

致命错误:无法通过引用传递参数4 ...

这指向bind_param

的行

1 个答案:

答案 0 :(得分:3)

您无法将常量传递给bind_param。首先将值放在变量中:

$status = "0";
$stmt->bind_param("sss", $oid, $cid, $status);
$stmt->execute();