Heim >Backend-Entwicklung >Golang >Warum gibt meine PostgreSQL-Abfrage einen „Syntaxfehler am Ende der Eingabe' zurück?

Warum gibt meine PostgreSQL-Abfrage einen „Syntaxfehler am Ende der Eingabe' zurück?

DDD
DDDOriginal
2024-12-26 02:56:10414Durchsuche

Why Does My PostgreSQL Query Return a

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn