Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Python MySQL-Escape-Sonderzeichen

Dies ist einer der Gründe, warum Sie Parameterbindung anstatt die Parameter in Python zu formatieren.

Tun Sie einfach Folgendes:

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

Dann:

cur.execute(sql, macs, host)

Auf diese Weise können Sie den String einfach als String behandeln und die MySQL-Bibliothek herausfinden lassen, wie er für Sie zitiert und maskiert wird.

Darüber hinaus erhalten Sie im Allgemeinen eine bessere Leistung (da MySQL eine Abfrage kompilieren und zwischenspeichern und für verschiedene Parameterwerte wiederverwenden kann) und vermeiden SQL-Injection-Angriffe (eine der häufigsten Methoden, sich selbst hacken zu lassen).