PostgreSQL funziona con segnaposto numerati ($1
, $2
, ...) in modo nativo piuttosto che i soliti punti interrogativi posizionali. La documentazione per l'interfaccia Go utilizza anche segnaposto numerati nei suoi esempi:
rows, err := db.Query("SELECT name FROM users WHERE age = $1", age)
Sembra che l'interfaccia Go non stia traducendo i punti interrogativi in segnaposto numerati come fanno molte interfacce, quindi il punto interrogativo arriva fino al database e confonde tutto.
Dovresti essere in grado di passare ai segnaposto numerati anziché ai punti interrogativi:
row := db.QueryRow(
"SELECT name FROM users WHERE id = $1", id)