mysqli:在bind_param中传递Constant

时间:2011-04-09 15:47:42

标签: mysqli

如何将常量传递给mysqli预处理语句中的bind_param。通过传递变量,以下工作正常:

 $stmt->bind_param("i", $id);

但是如果我试图传递常数,它就不起作用。 例如:

$stmt->bind_param("i", ID);

给出以下错误:

Fatal error: Cannot pass parameter 2 by reference in...

由于

1 个答案:

答案 0 :(得分:2)

在MySQLi中,类型字符串后面的参数是通过引用传递的,而不是通过值传递的。您可以通过引用传递的唯一内容是变量。使用变量的原因是你可以分配变量,执行语句,再次分配变量,再次执行语句等等。试试这个:

$id = ID;
$stmt->bind_param("i", $id);

或尝试使用PDO的MySQL驱动程序而不是MySQLi。 PDO允许您选择将值而不是变量绑定到查询参数。如果您计划只执行一次预准备语句,这将非常有用。