Php mysqli:在bind_参数中传递常量

Php mysqli:在bind_参数中传递常量,php,mysqli,Php,Mysqli,如何将常量传递给mysqli prepared语句中的bind_param。通过传递变量,以下各项可以正常工作: $stmt->bind_param("i", $id); 但若我试图传递常数,它就不起作用了。 例如: $stmt->bind_param("i", ID); 给出以下错误: Fatal error: Cannot pass parameter 2 by reference in... 感谢在MySQLi中,类型字符串后面的参数是通过引用传递的,而不是通过值传递的

如何将常量传递给mysqli prepared语句中的
bind_param
。通过传递变量,以下各项可以正常工作:

 $stmt->bind_param("i", $id);
但若我试图传递常数,它就不起作用了。 例如:

$stmt->bind_param("i", ID);
给出以下错误:

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

感谢在MySQLi中,类型字符串后面的参数是通过引用传递的,而不是通过值传递的。唯一可以通过引用传递的是变量。使用变量的原因是您可以分配变量、执行语句、再次分配变量、再次执行语句等。因此,请尝试以下操作:

$id = ID;
$stmt->bind_param("i", $id);
或者尝试使用PDO的MySQL驱动程序而不是MySQLi。PDO允许您选择将值而不是变量绑定到查询参数。如果您计划只执行一次准备好的语句,这将非常有用