Mysql
 sql >> Database >  >> RDS >> Mysql

Python MySQL esegue l'escape di caratteri speciali

Questo è uno dei motivi per cui dovresti usare associazione dei parametri invece di formattare i parametri in Python.

Basta fare questo:

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

Quindi:

cur.execute(sql, macs, host)

In questo modo, puoi semplicemente gestire la stringa come una stringa e lasciare che la libreria MySQL capisca come citarla e come eseguire l'escape per te.

Inoltre, generalmente ottieni prestazioni migliori (perché MySQL può compilare e memorizzare nella cache una query e riutilizzarla per valori di parametro diversi) ed evitare Attacchi SQL injection (uno dei modi più comuni per farti hackerare).