1
這是我的聲明是如何看起來像。奇怪的準備語句錯誤
$stmt = $this->db->prepare("
select q.id
from questions q
left outer join (
select max(chk_date) as questions_last_chk_date
FROM last_check_date
where user_id = ?
AND chk_token=?) lcd
on q.add_dt > lcd.questions_last_chk_date
WHERE q.author_id<>?
") or die($this->db->error);
$stmt->bind_param("isi", $_SESSION["userID"], "q", $_SESSION["userID"]) or die($stmt->error);
我有2個問題
1)獲得錯誤信息
致命錯誤:無法通過引用
爲什麼會出現此錯誤傳遞參數3?順便說一句,我知道last_check_date
表是空的,但我認爲這與這個問題沒有關係。
2)在windows上,獲取錯誤消息表last_check_date
不存在,但我100%知道沒有錯字,並且存在表。我用Navicat - db amanger應用程序嘗試了相同的查詢並得到了結果。但是,當我嘗試使用PHP獲取此錯誤。在遠程Linux服務器上它工作,並在問題1中獲取錯誤消息。嘗試重新啓動mysql服務,重命名爲其他名稱並將名稱更改回上一個。沒有成功!我該如何解決這個問題?
我不是MySQLi專家,但我認爲你不能將靜態參數綁定到查詢。在我看來,這是完全合理的。因此,要麼將參數3設置爲變量並傳遞它,要麼更改查詢,以便現在參數3已經存在。 – clentfort
@clentfort我gachu。但無法通過外連接獲得此項工作。我沒有外連接的經驗。這就是爲什麼向社區發佈問題 – heron