Memahami "Syntax Error at End of Input" dalam PostgreSQL
Dalam PostgreSQL, mesej ralat "syntax error at end of input" selalunya menandakan percanggahan antara sintaks yang dijangkakan dan input yang diterima oleh penghurai. Mari kita teliti mengapa ralat ini berlaku dalam kes khusus anda:
Pertanyaan anda, yang menggunakan '?' sebagai pemegang tempat parameter, serasi dengan MySQL tetapi tidak PostgreSQL. Dalam PostgreSQL, pernyataan yang disediakan menggunakan '$1', '$2', dsb. sebagai ruang letak parameter. Mengubah suai pertanyaan anda seperti berikut akan menyelesaikan isu ini:
db.Query(`SELECT COUNT(*) as N FROM email WHERE address = `, email)
Perubahan ini memastikan sintaks pertanyaan mematuhi konvensyen PostgreSQL.
Mesej ralat PostgreSQL sememangnya boleh menjadi samar, tetapi dalam kes ini, parser salah tafsir penghujung input sebagai ralat sintaks disebabkan oleh ruang letak yang tidak betul. Dengan menjajarkan pertanyaan anda dengan sintaks PostgreSQL, anda boleh mengelakkan ralat ini.
Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Ralat Sintaks di Akhir Input' dalam Pertanyaan PostgreSQL Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!