PostgreSQL werkt met genummerde tijdelijke aanduidingen ($1
, $2
, ...) native in plaats van de gebruikelijke positionele vraagtekens. De documentatie voor de Go-interface gebruikt ook genummerde tijdelijke aanduidingen in de voorbeelden:
rows, err := db.Query("SELECT name FROM users WHERE age = $1", age)
Het lijkt erop dat de Go-interface de vraagtekens niet vertaalt naar genummerde tijdelijke aanduidingen zoals veel interfaces doen, dus het vraagteken komt helemaal in de database en verwart alles.
U zou moeten kunnen overschakelen naar genummerde tijdelijke aanduidingen in plaats van vraagtekens:
row := db.QueryRow(
"SELECT name FROM users WHERE id = $1", id)