我只是需要帮助解决这个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();
?>
这个错误是什么意思?如何解决这个错误?
答案 0 :(得分:81)
错误意味着第二个参数应该是对变量的引用。
由于您没有处理变量而是值为0的整数,因此会产生错误。
规避这一点:
$update->bind_param("is", $a = 0, $selectedDate); //LINE 13
如果您想了解正在发生的事情,而不是仅修复Fatal error
,请阅读:http://php.net/manual/en/language.references.pass.php
答案 1 :(得分:5)
首先,当你想比较日期时不应该使用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();