Mysql
 sql >> Base de données >  >> RDS >> Mysql

Caractères spéciaux d'échappement Python MySQL

C'est l'une des raisons pour lesquelles vous êtes censé utiliser la liaison de paramètres au lieu de formater les paramètres en Python.

Faites ceci :

sql = 'UPGRADE inventory_server set server_mac = %s where server_name = %s'

Ensuite :

cur.execute(sql, macs, host)

De cette façon, vous pouvez simplement traiter la chaîne comme une chaîne et laisser la bibliothèque MySQL déterminer comment la citer et l'échapper pour vous.

En plus de cela, vous obtenez généralement de meilleures performances (car MySQL peut compiler et mettre en cache une requête et la réutiliser pour différentes valeurs de paramètre) et évitez Attaques par injection SQL (l'un des moyens les plus courants de se faire pirater).