我正在嘗試將我在 MAMP 服務(wù)器上本地開發(fā)的網(wǎng)站遷移到實(shí)時(shí)服務(wù)器。所有查詢都按預(yù)期在 MAMP 上運(yùn)行。在實(shí)時(shí)服務(wù)器上,我收到“輸入...不存在”的查詢錯(cuò)誤。MAMP 服務(wù)器:PHP - 7.4.2 MySQL - 5.7.26 InnoDB實(shí)時(shí)服務(wù)器:PHP - 7.4 MariaDB - 10.2 InnoDB結(jié)構(gòu)和主鍵相同 - 檢查所有表$user_id, $id, $date, $summ - 是變量,我通過 POST 方法得到。詢問:if ($result = $link->prepare("INSERT INTO sb_user_checks (user_id, check_id, date_update, summ, updated_by) SELECT ?, ?, ?, ?, 'You' WHERE NOT EXISTS (SELECT date_update FROM sb_user_checks WHERE user_id=? AND check_id=? AND date_update=?) ")) { $result->bind_param('iisiiis', $user_id, $id, $date, $summ, $user_id, $id, $date); $result->execute(); if (mysqli_affected_rows($link)>0) {echo 'added';} $result->close(); } 我收到以下錯(cuò)誤:#1064 - 您的 SQL 語法有錯(cuò)誤;檢查與您的 MariaDB 服務(wù)器版本相對(duì)應(yīng)的手冊(cè),以在第 3 行的“WHERE NOT EXISTS (SELECT date_update FROM sb_user_checks WHERE user_i”附近使用正確的語法是否與 MySQL 版本有關(guān),或者它是不正確的查詢?但是,再次,它在 MAMP 上正常工作。
1 回答

翻過高山走不出你
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
DUAL
在 MySQL 中,我相信 MariaDB,當(dāng)語法需要但整體邏輯不需要時(shí),查詢可以用作表的替代品。例如,在這種情況下:
SELECT ?, ?, ?, ?, 'You' FROM DUAL WHERE NOT EXISTS ...
DUAL 的作用類似于單行無列表;并且實(shí)際上只是作為此類場(chǎng)景的替代品。這些因素有許多影響:
它不能與 SELECT * 一起使用
它不能被別名
它不能加入。
更多...這些限制只是我在編寫此答案時(shí)通過手動(dòng)運(yùn)行快速測(cè)試發(fā)現(xiàn)的限制。
- 1 回答
- 0 關(guān)注
- 244 瀏覽
添加回答
舉報(bào)
0/150
提交
取消