PHP PDO 查詢中的語法錯誤
當SQL 查詢中存在語法錯誤或嘗試存取受限資料時,會發生此錯誤。具體來說,錯誤訊息指示:
「SQLSTATE[42000]:語法錯誤或存取衝突:1064 您的 SQL 語法有錯誤;請檢查與您的 MySQL伺服器版本對應的手冊以獲得正確的語法使用...”
讓我們分析提供的程式碼來識別錯誤來源:
$sql = "INSERT INTO messages (from, to, name, subject, message) VALUES (:from, :to, :name, :subject, :message)";
在這個查詢中,from列是MySQL中的保留關鍵字。如果關鍵字沒有用反引號 (`) 括起來,則不能將其用作列名。正確的語法是:
$sql = "INSERT INTO messages (`from`, `to`, name, subject, message) VALUES (:from, :to, :name, :subject, :message)";
同樣,to 欄位也是保留關鍵字,因此也應該用反引號括起來。更新後的查詢變為:
$sql = "INSERT INTO messages (`from`, `to`, name, subject, message) VALUES (:from, :to, :name, :subject, :message)";
透過更正保留關鍵字周圍的語法,應該解決錯誤並且查詢應該成功執行。在命名列時,必須注意與保留關鍵字的潛在衝突,以避免此類語法錯誤。
以上是為什麼我的 PHP PDO 查詢出現「語法錯誤或存取衝突」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!