Maison >base de données >tutoriel mysql >Comment afficher la requête réelle exécutée par MySQLdb ?

Comment afficher la requête réelle exécutée par MySQLdb ?

DDD
DDDoriginal
2024-11-04 14:01:01244parcourir

How to View the Actual Query Executed by MySQLdb?

Comment afficher la requête réelle exécutée par MySQLdb

Lors du débogage de requêtes de base de données en Python à l'aide de MySQLdb, il peut être utile d'examiner la requête exacte requête en cours d'exécution, notamment après paramétrage. Cela peut aider à identifier toute erreur ou divergence entre la requête prévue et son exécution réelle.

Accès à la requête exécutée

Dans MySQLdb version 1.2.2, l'objet Cursor ne fournit pas de méthode Cursor.info() explicite pour récupérer les informations de requête. Cependant, il existe un attribut appelé curseur._last_executed qui contient la dernière chaîne de requête exécutée. Cet attribut est accessible même lorsqu'une exception se produit lors de l'exécution d'une requête.

Exemple d'utilisation

Pour utiliser cet attribut à des fins de débogage, vous pouvez y accéder après avoir exécuté une requête en tant que suit :

<code class="python">import MySQLdb

db = MySQLdb.connect(... )
cursor = db.cursor()

# Execute a query with parameters
query = "SELECT * FROM users WHERE name = %s"
cursor.execute(query, ("John", ))

# Print the actual query executed
print(cursor._last_executed)</code>

Avantages

L'utilisation de curseur._last_executed offre plusieurs avantages par rapport à d'autres techniques de débogage telles que le profilage ou la journalisation des requêtes MySQL :

  • Il est plus facile à mettre en œuvre et à utiliser dans des environnements de production.
  • Il n'a pas d'impact significatif sur les performances.
  • Il fournit un accès immédiat à la requête exécutée sans avoir besoin de corrélation ou de journalisation supplémentaire analyse.

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