[英]PHP error: "Cannot pass parameter 2 by reference"
我只需要關於這個 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 的整數,因此它會產生所述錯誤。
為了避免這種情況:
$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();
bindParam() 的 insted 使用 bindValue..
$getData = "SELECT * FROM tbl_users WHERE ID = ?";
$stmt = $db->prepare("SELECT * FROM tbl_users WHERE ID=:ID");
*$stmt->bindParam('ID',3);*
$stmt->execute();
$rcd = $stmt->fetch(PDO::FETCH_OBJ);
$getData = "SELECT * FROM tbl_users WHERE ID = ?";
$stmt = $db->prepare("SELECT * FROM tbl_users WHERE ID=:ID");
$stmt->bindValue('ID',3);
$stmt->execute();
$rcd = $stmt->fetch(PDO::FETCH_OBJ);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.