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

Python mysql.conector.errores. %s pasado a consulta SQL con comillas

El hecho de que MySQLPython utilice el marcador de formato de cadena estándar ("%") para los marcadores de posición de las variables en las consultas puede hacer que las cosas sean confusas.

El marcador de posición de consultas en db-api de python es para valores usado en where cláusulas y insert y update db-api para evitar inyecciones de SQL, etc. No se supone que se usen para nombres de tablas o campos.

Entonces, lo que quiere aquí es construir su consulta usando el formato de cadena:

sql =  'SHOW TABLES FROM %s;' % (db_name[0],)
cursor.execute(sql)

Desde db_name[0] proviene de una fuente confiable, no hay problema de seguridad aquí.