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('dm-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(); ?> 

这个错误是什么意思? 这个错误怎么解决?

该错误意味着第二个参数可能是一个variables引用

由于您没有处理一个variables,而是一个整数值为0variables ,所以会产生所述错误。

为了规避这个事情:

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

如果您想了解正在发生的事情,而不是仅仅修复Fatal error ,请阅读: http : //php.net/manual/en/language.references.pass.php

首先,当您想比较date时,不应该使用DATE_FORMAT ,因为DATE_FORMAT将其更改为string不再是date

 UPDATE Session SET Active = ? WHERE SessionDate <= ? 

其次,将值存储在一个variables上并传递给参数

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