簡體   English   中英

為什么此UPDATE預處理語句不起作用,但是在SQL db中使用時起作用

[英]Why does this UPDATE prepared statement doesn't work, but works when used in SQL db

我有以下聲明:

$stmt = $con->prepare("UPDATE accounts SET loggedin = ? WHERE TIMESTAMPDIFF(SECOND,lastcheck, NOW()) >= ? AND loggedin = ?");
$stmt->bind_param('iii', 0, 61, 0);

並且它給出500 internal server error 當我在運行這樣的sql的phpmyadmin上嘗試相同時:

UPDATE accounts SET loggedin = 0 WHERE TIMESTAMPDIFF(SECOND,lastcheck, NOW()) >= 61 AND loggedin = 1

工作沒有任何問題。

我的問題在哪里?

這是我的錯誤:

PHP致命錯誤:未捕獲錯誤:無法通過引用傳遞參數2

bind_param不接受值,僅接受參數。 您需要使用變量。 就像是:

$stmt->bind_param('iii', $s, $ss, $sss); 
$s = 0;
$ss= 61;
$sss = 0;

應該解決它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM