PostgreSQL bekerja dengan placeholder bernomor ($1
, $2
, ...) secara asli daripada tanda tanya posisi biasa. Dokumentasi untuk antarmuka Go juga menggunakan placeholder bernomor dalam contohnya:
rows, err := db.Query("SELECT name FROM users WHERE age = $1", age)
Tampaknya antarmuka Go tidak menerjemahkan tanda tanya ke placeholder bernomor seperti yang dilakukan banyak antarmuka sehingga tanda tanya masuk ke database dan membingungkan segalanya.
Anda seharusnya dapat beralih ke placeholder bernomor alih-alih tanda tanya:
row := db.QueryRow(
"SELECT name FROM users WHERE id = $1", id)