对“mysqli bind_param() 参数预期为引用”错误进行故障排除
错误“mysqli_stmt::bind_param() 的参数 3”预期为参考,给定值”表示预期输入类型与实际输入类型之间存在差异在 mysqli_bind_param() 方法中提供的值。
在给定的代码中,您使用 call_user_func_array() 将值数组传递给 mysqli_stmt_bind_param()。但是,mysqli_bind_param() 期望参数通过引用传递,而 call_user_func_array() 接受引用或值。
要纠正此问题,您可以使用 PHP 文档中提供的以下解决方案:
$refs = array(); foreach ($params as $key => $value) $refs[$key] = &$params[$key]; call_user_func_array(array($statement, 'bind_param'), $refs);
此代码创建对 $params 数组中元素的引用 ($refs) 数组,并将 $refs 数组传递给mysqli_stmt_bind_param(),确保参数通过引用传递。
或者,您可以使用展开运算符(在较新的 PHP 版本中可用)直接将 $params 数组的元素作为引用传递:
call_user_func_array(array($statement, 'bind_param'), ...$params);
以上是为什么 `mysqli_stmt::bind_param()` 需要引用,以及如何修复'参数预期为引用”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!