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!