Heim >Backend-Entwicklung >Golang >Warum gibt meine PostgreSQL-Abfrage einen „Syntaxfehler am Ende der Eingabe' zurück?
Verstehen des Fehlers „Syntaxfehler am Ende der Eingabe“ in PostgreSQL
In PostgreSQL wird die Fehlermeldung „pq: F:“ gescannt .l" M:"Syntaxfehler am Ende der Eingabe" S:"FEHLER" C:"42601" P:"50" R:"scanner_yyerror" L:"993"" weist auf ein Problem mit der Syntax einer SQL-Anweisung hin.
Ursache:
Das spezifische Problem in diesem Fall ist wahrscheinlich aufgrund des Parameter-Platzhalterzeichens, das in der vorbereiteten Anweisung verwendet wird.
MySQL verwendet ? als Parameterplatzhalter, während PostgreSQL $1, $2 usw. verwendet. In der bereitgestellten SQL-Anweisung:
db.Query(`SELECT COUNT(*) as N FROM email WHERE address = ?`, email)
wird das Fragezeichen (?) als Platzhalter für die E-Mail-Adresse verwendet. Allerdings erkennt PostgreSQL diese Syntax nicht.
Lösung:
Um dieses Problem zu beheben, ersetzen Sie einfach das Fragezeichen durch $1:
db.Query(`SELECT COUNT(*) as N FROM email WHERE address = `, email)
Empfehlung:
Um solche Fehler in Zukunft zu vermeiden, verwenden Sie immer das Richtige Parameterplatzhalter, der von Ihrem spezifischen Datenbanksystem unterstützt wird.
Das obige ist der detaillierte Inhalt vonWarum gibt meine PostgreSQL-Abfrage einen „Syntaxfehler am Ende der Eingabe' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!