Comprendre l'erreur "Erreur de syntaxe à la fin de la saisie" dans PostgreSQL
Dans PostgreSQL, le message d'erreur "pq: F:" scan .l" M:"erreur de syntaxe en fin de saisie" S:"ERREUR" C:"42601" P:"50" R:"scanner_yyerror" L:"993"" indique un problème avec la syntaxe d'une instruction SQL.
Cause :
Le problème spécifique dans ce cas est probablement en raison du caractère d'espace réservé du paramètre utilisé dans l'instruction préparée.
MySQL utilise ? comme espace réservé de paramètre, tandis que PostgreSQL utilise $1, $2, etc. Dans l'instruction SQL fournie :
db.Query(`SELECT COUNT(*) as N FROM email WHERE address = ?`, email)
le point d'interrogation (?) est utilisé comme espace réservé pour l'adresse e-mail. Cependant, PostgreSQL ne reconnaît pas cette syntaxe.
Solution :
Pour résoudre ce problème, remplacez simplement le point d'interrogation par $1 :
db.Query(`SELECT COUNT(*) as N FROM email WHERE address = `, email)
Recommandation :
Pour éviter de telles erreurs à l'avenir, utilisez toujours le bon paramètre espace réservé pris en charge par votre système de base de données spécifique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!