sql >> Base de Datos >  >> RDS >> Mysql

Python MySQL escapar caracteres especiales

Esta es una de las razones por las que se supone que debes usar enlace de parámetros en lugar de formatear los parámetros en Python.

Solo haz esto:

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

Entonces:

cur.execute(sql, macs, host)

De esa manera, puede tratar la cadena como una cadena y dejar que la biblioteca MySQL descubra cómo citarla y escaparla por usted.

Además de eso, generalmente obtiene un mejor rendimiento (porque MySQL puede compilar y almacenar en caché una consulta y reutilizarla para diferentes valores de parámetros) y evitar Ataques de inyección SQL (una de las formas más comunes de ser hackeado).