ホームページ >バックエンド開発 >Golang >PostgreSQL クエリで「入力の終わりに構文エラー」が発生するのはなぜですか?

PostgreSQL クエリで「入力の終わりに構文エラー」が発生するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-18 02:10:11455ブラウズ

Why Am I Getting a

PostgreSQL の「入力末尾の構文エラー」について

PostgreSQL では、「入力末尾の構文エラー」というエラー メッセージが頻繁に表示されます。予期される構文とパーサーが受信した入力との間に不一致があることを示します。特定のケースでこのエラーが発生する理由を詳しく調べてみましょう:

「?」を使用するクエリ。パラメータ プレースホルダとして、MySQL と互換性がありますが、PostgreSQL とは互換性がありません。 PostgreSQL では、準備されたステートメントはパラメーターのプレースホルダーとして「$1」、「$2」などを使用します。次のようにクエリを変更すると、この問題が解決されます。

db.Query(`SELECT COUNT(*) as N FROM email WHERE address = `, email)

この変更により、クエリ構文が PostgreSQL の規則に準拠するようになります。

PostgreSQL のエラー メッセージは確かに不可解な場合がありますが、この場合、不適切なプレースホルダーが原因で、パーサーは入力の末尾を構文エラーとして誤って解釈しました。クエリを PostgreSQL 構文に合わせることで、このエラーを回避できます。

以上がPostgreSQL クエリで「入力の終わりに構文エラー」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。