PostgreSQL pracuje s číslovanými zástupnými symboly ($1
, $2
, ...) nativně spíše než obvyklé poziční otazníky. Dokumentace pro rozhraní Go také ve svých příkladech používá číslované zástupné symboly:
rows, err := db.Query("SELECT name FROM users WHERE age = $1", age)
Zdá se, že rozhraní Go nepřekládá otazníky na číslované zástupné symboly tak, jak to dělá mnoho rozhraní, takže otazník se dostává až do databáze a všechno zamotává.
Měli byste být schopni přepnout na číslované zástupné symboly namísto otazníků:
row := db.QueryRow(
"SELECT name FROM users WHERE id = $1", id)