在MySQLi中不能通过引用传递参数

时间:2011-04-06 16:36:55

标签: php mysql binding mysqli prepared-statement

我正在尝试将一个字符串传递给我的MySQLi预处理语句,但它给了我错误:

无法通过MySQLi中的引用传递参数

以下是相关代码:

$kv = json_encode(array($key => $value));
$stmt->prepare("insert into rules (application_id, ruletype, rule_name, rule_info) values (?, ?, ?, ?);");
$stmt->bind_param('iiss', $application_id, 1, $config_name, $kv);

2 个答案:

答案 0 :(得分:24)

'iiss'和'1'不能作为参考传递,因为它们不是变量而是字符串常量。您需要使用提到的值创建两个变量并传递它们,因为bind_param()函数需要通过引用传递的变量。

编辑:导致问题的是'1',而不是绑定参数的名称('iiss')。对于错误的信息感到抱歉,当我回答你的问题时,我很匆忙。

答案 1 :(得分:0)

检查$config_name参数。 '1'未通过推荐

相关问题