首頁 >後端開發 >Golang >為什麼我的 PostgreSQL 查詢會回傳「輸入末尾的語法錯誤」?

為什麼我的 PostgreSQL 查詢會回傳「輸入末尾的語法錯誤」?

DDD
DDD原創
2024-12-26 02:56:10412瀏覽

Why Does My PostgreSQL Query Return a

理解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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn