Maison  >  Article  >  développement back-end  >  Comment exécuter des requêtes MySQL en Go avec des variables définies

Comment exécuter des requêtes MySQL en Go avec des variables définies

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-23 17:48:02355parcourir

How to Execute MySQL Queries in Go with Set Variables

Requêtes MySQL Go avec des variables SET

Problème

Vous essayez d'exécuter une requête MySQL dans Go qui définit des variables avant d'exécuter la requête. Cependant, lorsque vous exécutez la requête via Go, vous rencontrez une erreur de syntaxe au niveau de l'instruction SELECT.

Solution

La solution à ce problème implique deux étapes :

  1. Configurer le DSN :

    • Lors de la connexion à votre base de données, ajoutez les paramètres suivants à votre DSN : ...&multiStatements=true&interpolateParams=true
  2. Convertir le classement :

    • Si vous utilisez MySQL, assurez-vous que votre base de données et vos tables utilisent le même classement. Si ce n'est pas le cas, convertissez-les en utf8mb4_general_ci.

Explication

Configuration DSN :

Les multiStatements Le paramètre permet d’exécuter plusieurs instructions dans une seule requête. Le paramètre interpolateParams active l'interpolation des paramètres, ce qui vous permet d'utiliser ? espaces réservés pour les paramètres de requête.

Conversion de classement :

MySQL a plusieurs classements, qui déterminent la manière dont les caractères sont triés et comparés. Si le classement de la base de données et des tables ne correspond pas, vous pouvez rencontrer des erreurs de classement lors des comparaisons. La conversion en un classement cohérent résout ce problème.

En apportant ces modifications, vous pourrez exécuter votre requête avec succès dans Go tout en définissant les variables au préalable.

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