理解PostgreSQL 中的「Syntax error at end of input」錯誤
在PostgreSQL 中,錯誤訊息掃描「pq: F:」 .l" M:"輸入末尾語法錯誤" S:"錯誤" C:"42601" P:"50" R:"scanner_yyerror" L:"993"" 表示 SQL 語句語法有問題。
原因:
具體問題在這種情況下,可能是由於準備好的語句中使用了參數佔位符。
MySQL 使用 ?作為參數佔位符,而 PostgreSQL 使用 $1、$2 等。在提供的 SQL 語句中:
db.Query(`SELECT COUNT(*) as N FROM email WHERE address = ?`, email)
問號 (?) 用作電子郵件地址的佔位符。但是,PostgreSQL 無法辨識此語法。
解:
要解決此問題,只需將問號替換為 $1:
db.Query(`SELECT COUNT(*) as N FROM email WHERE address = `, email)
建議:
為了避免將來出現此類錯誤,請始終使用特定資料庫系統支援的正確參數佔位符。
以上是為什麼我的 PostgreSQL 查詢會回傳「輸入末尾的語法錯誤」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!