我正在更新我的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
的行答案 0 :(得分:3)
您无法将常量传递给bind_param。首先将值放在变量中:
$status = "0";
$stmt->bind_param("sss", $oid, $cid, $status);
$stmt->execute();