首页 > 后端开发 > php教程 > 为什么我的 PHP 代码抛出'无法通过引用传递参数 2”错误?

为什么我的 PHP 代码抛出'无法通过引用传递参数 2”错误?

Barbara Streisand
发布: 2024-12-10 16:28:11
原创
375 人浏览过

Why Does My PHP Code Throw a

理解 PHP 的“无法通过引用传递参数 2”错误

在 PHP 中,通过引用传递参数允许对传递的变量进行更改反映在原始变量中。但是,如果参数预计通过引用传递,但实际并非如此,则可能会导致“无法通过引用传递参数 2”错误。

特定错误场景:带有日期比较的 UPDATE 查询

考虑以下 PHP 代码:

$selectedDate = date('d-m-Y', ($createDate));

$sql = "UPDATE Session SET Active = ? WHERE DATE_FORMAT(SessionDate,'%Y-%m-%d' ) <= ?";
$update = $mysqli->prepare($sql);
$update->bind_param("is", 0, $selectedDate);  // Line 13
登录后复制

在此示例中,Line 13 尝试将两个参数绑定到准备好的语句:

  • 第一个参数是整数 (0),并按值传递。
  • 第二个参数是字符串 ($selectedDate )并且也是按值传递。

但是,第二个参数应该是对变量的引用,由“s”表示在“is”类型字符串中。由于它不是通过引用传递,因此会抛出错误“无法通过引用传递参数 2”。

解决方案:传递变量引用

要解决此错误,请传递对第二个参数的变量引用,如下所示:

$isActive = 0;
$update->bind_param("is", $isActive, $selectedDate);
登录后复制

通过引用传递 $isActive,对其进行更改准备好的语句中的内容将反映在原始变量中。

理解 PHP 中的引用

有关 PHP 中引用的更多信息,您可以参考以下文档: http://php.net/manual/en/language.references.pass.php.

以上是为什么我的 PHP 代码抛出'无法通过引用传递参数 2”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

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