Maison > base de données > tutoriel mysql > Comment échapper le caractère % dans les requêtes MySQL à l'aide de Python ?

Comment échapper le caractère % dans les requêtes MySQL à l'aide de Python ?

Mary-Kate Olsen
Libérer: 2024-11-17 20:50:02
original
552 Les gens l'ont consulté

How to Escape the % Character in MySQL Queries Using Python?

Échapper % des requêtes MySQL en Python

L'utilisation du caractère % dans les requêtes MySQL peut conduire à des exceptions s'il n'est pas échappé correctement. Par exemple, 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))
Copier après la connexion

lèvera une exception "ValueError : caractère de format non pris en charge 'Y'" car mysqldb interprète le % comme un spécificateur de format.

Pour résoudre ce problème , l'échappement littéral est recommandé par la documentation mysqldb. Cela implique de doubler les % caractères dans la chaîne de requête :

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))
Copier après la connexion

Cela empêchera mysqldb d'interpréter les % caractères comme spécificateurs de format, permettant ainsi à la requête de s'exécuter avec succès.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal