PostgreSQL arbejder med nummererede pladsholdere ($1
, $2
, ...) indfødte snarere end de sædvanlige positionsspørgsmålstegn. Dokumentationen til Go-grænsefladen bruger også nummererede pladsholdere i sine eksempler:
rows, err := db.Query("SELECT name FROM users WHERE age = $1", age)
Det ser ud til, at Go-grænsefladen ikke oversætter spørgsmålstegnet til nummererede pladsholdere, som mange grænseflader gør, så spørgsmålstegnet når hele vejen til databasen og forvirrer alt.
Du bør kunne skifte til nummererede pladsholdere i stedet for spørgsmålstegn:
row := db.QueryRow(
"SELECT name FROM users WHERE id = $1", id)