理解 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 尝试将两个参数绑定到准备好的语句:
但是,第二个参数应该是对变量的引用,由“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中文网其他相关文章!