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

我只是需要这个 PHP 错误的帮助,我不是很明白:

致命错误: 无法在第13行的/web/stud/openup/inactivatesession.php 中通过引用传递参数2

<?php


error_reporting(E_ALL);


include('connect.php');


$createDate = mktime(0,0,0,09,05,date("Y"));
$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
$update->execute();


?>

这个错误是什么意思? 如何修复这个错误?

102663 次浏览

错误意味着第二个参数应该是 对变量的引用

因为您不是在处理一个 变量而是一个 值为0的整数,所以它会生成上述错误。

为了避免这样做:

$a = 0;
$update->bind_param("is", $a, $selectedDate);  //LINE 13

如果你想了解发生了什么,而不是仅仅修复你的 Fatal error,请阅读: http://php.net/manual/en/language.references.pass.php

首先,在比较日期时不应该使用 DATE_FORMAT,因为 DATE_FORMAT将其更改为字符串 不再约会了,

UPDATE Session
SET Active = ?
WHERE SessionDate <= ?

其次,首先将值存储在变量上,然后将其传递给参数

$createDate = mktime(0,0,0,09,05,date("Y"));
$selectedDate =  date('d-m-Y', ($createDate));
$active = 0;
$sql = "UPDATE Session SET Active = ? WHERE SessionDate <= ?";
$update = $mysqli->prepare($sql);
$update->bind_param("is", $active, $selectedDate);
$update->execute();