处理 mysqli bind_param() 中的“预期为引用”错误
错误消息“Parameter 3 to mysqli_stmt::bind_param(当将值绑定到准备好的语句时,会出现“期望成为参考,给定值”的情况。要解决此问题,提供的值必须是对实际变量的引用,而不是值本身。
在提供的代码片段中,$params 数组包含不是引用的值。要正确绑定值,可以使用以下方法:
$query = "INSERT INTO test (id,row1,row2,row3) VALUES (?,?,?,?)"; $param_type = "isss"; // PHP 7+ $sql_stmt = mysqli_prepare($mysqli, $query); mysqli_stmt_bind_param($sql_stmt, $param_type, ...$params); // PHP 5.6 - 7.0 $sql_stmt = mysqli_prepare($mysqli, $query); $arr = array($sql_stmt, $param_type); foreach ($params as $param) { $arr[] = &$param; } call_user_func_array('mysqli_stmt_bind_param', $arr); mysqli_stmt_execute($sql_stmt);
引用的使用
在 PHP 5.3 及以下版本中,绑定值不需要引用准备好的声明。然而,从 PHP 5.4 开始,引用是强制性的。进行此更改的原因是为了防止不必要的变量复制和潜在的内存泄漏。
通过使用引用,绑定过程变得更加高效,因为直接修改绑定值,无需额外的变量赋值。
结论
请记住,当将 mysqli bind_param() 与不是引用的值一起使用时,您需要将它们作为引用传递或使用替代方法来正确绑定值。这确保了 SQL 查询的高效且无错误的执行。
以上是如何解决 mysqli bind_param() 中的'预期为引用”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!