Maison >base de données >tutoriel mysql >Comment échapper au caractère « % » dans les requêtes MySQL à partir de Python ?

Comment échapper au caractère « % » dans les requêtes MySQL à partir de Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-16 03:28:03922parcourir

How to Escape the '%' Character in MySQL Queries from Python?

% d'échappement dans les requêtes MySQL à partir de Python

Lors de l'utilisation de la bibliothèque MySQLdb de Python, rencontre d'une exception "ValueError : caractère de format non pris en charge" lors de l'exécution d'un une requête avec un caractère "%" peut être frustrante. En effet, MySQL traite le caractère "%" comme un caractère générique et l'interprète comme faisant partie de la requête plutôt que comme un littéral.

Pour résoudre ce problème, la documentation recommande d'échapper les signes littéraux "%" dans le chaîne de requête passée à exécuter(). En utilisant un double % (%%), MySQL reconnaîtra le « % » comme un caractère littéral plutôt que comme un caractère générique.

Par exemple, la requête dans la question d'origine peut être modifiée comme suit :

query = """SELECT DATE_FORMAT(date_time, '%%Y-%%m') AS dd
FROM some_table
WHERE some_col = %s
AND other_col = %s;"""

cur.execute(query, (pram1, pram2))

En échappant aux signes littéraux "%", MySQL reconnaîtra désormais "Y" et "m" comme des caractères spécifiques dans la chaîne DATE_FORMAT et l'erreur sera évitée.

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