首页 > 后端开发 > php教程 > 如何解决 mysqli bind_param() 中的'预期为引用”错误?

如何解决 mysqli bind_param() 中的'预期为引用”错误?

Susan Sarandon
发布: 2024-12-13 10:57:15
原创
169 人浏览过

How to Solve the

处理 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板