Maison >développement back-end >Golang >Pourquoi mon instruction préparée échoue-t-elle dans PostgreSQL avec une « erreur de syntaxe d'espace réservé aux paramètres de requête » ?

Pourquoi mon instruction préparée échoue-t-elle dans PostgreSQL avec une « erreur de syntaxe d'espace réservé aux paramètres de requête » ?

DDD
DDDoriginal
2024-12-28 09:13:13769parcourir

Why Does My Prepared Statement Fail in PostgreSQL with a

Erreur de syntaxe de l'espace réservé au paramètre de requête dans PostgreSQL

L'instruction SQL fournie tente d'exécuter une requête avec une instruction préparée. Cependant, cette instruction rencontre une erreur dans PostgreSQL en raison d'un espace réservé de paramètre inapproprié.

MySQL et PostgreSQL utilisent une syntaxe différente pour spécifier les espaces réservés de paramètres. Alors que MySQL utilise le "?" caractère, PostgreSQL utilise "$1", "$2", etc.

Pour résoudre ce problème, remplacez le "?" espace réservé dans l'instruction SQL avec "$1", comme indiqué ci-dessous :

db.Query(`SELECT COUNT(*) as N FROM email WHERE address = `, email)

Cet ajustement devrait éliminer l'erreur de syntaxe et permettre à la requête de s'exécuter avec succès dans PostgreSQL.

De plus, l'énigmatique les messages d'erreur rencontrés dans PostgreSQL peuvent provenir de diverses causes. Dans ce cas particulier, l'analyseur est devenu confus en raison d'une syntaxe de paramètre incorrecte, entraînant un message d'erreur énigmatique.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn