Maison  >  Article  >  base de données  >  Comment échapper aux signes de pourcentage (%) dans les requêtes MySQL à l'aide de Python ?

Comment échapper aux signes de pourcentage (%) dans les requêtes MySQL à l'aide de Python ?

DDD
DDDoriginal
2024-11-18 01:08:02197parcourir

How to Escape Percent Signs (%) in MySQL Queries Using Python?

Comment échapper % des caractères dans les requêtes MySQL à l'aide de Python

Lors de la construction de requêtes MySQL en Python, il est nécessaire d'échapper certains caractères, y compris le signe de pourcentage (%). Ne pas le faire peut entraîner des erreurs.

Considérez la requête suivante :

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))

L'exécution de cette requête entraînera une exception "ValueError : caractère de format non pris en charge 'Y'". Cela se produit car MySQL interprète le caractère % comme un spécificateur de format dans la fonction DATE_FORMAT, au lieu de le traiter comme un caractère littéral.

Pour résoudre ce problème, il est recommandé d'utiliser l'échappement littéral comme suggéré par le connecteur MySQL/ Documentation Python :

literal% = '%%'  # Define a literal percent string
query = """SELECT DATE_FORMAT(date_time,'{}') AS dd
FROM some_table
WHERE some_col = %s
AND other_col = %s;""".format(literal%)

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

En échappant le caractère pourcentage avec un autre signe pourcentage, la requête sera exécutée correctement sans être affectée par le format interprétation du spécificateur. Cette approche garantit que le signe de pourcentage est traité comme un caractère littéral dans la requête.

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