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

Usando un dictado de Python para una instrucción SQL INSERT

Creo que el comentario sobre el uso de esto con MySQL no está del todo completo. MySQLdb no reemplaza parámetros en las columnas, solo los valores (IIUC), así que tal vez más como

placeholders = ', '.join(['%s'] * len(myDict))
columns = ', '.join(myDict.keys())
sql = "INSERT INTO %s ( %s ) VALUES ( %s )" % (table, columns, placeholders)
# valid in Python 2
cursor.execute(sql, myDict.values())
# valid in Python 3
cursor.execute(sql, list(myDict.values()))

Sin embargo, no se está escapando en las columnas, por lo que es posible que desee verificarlas primero....

Consulte http://mail.python.org/pipermail/tutor/ 2010-diciembre/080701.html para una solución más completa