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

Utilizzo di un dict Python per un'istruzione SQL INSERT

Penso che il commento sull'utilizzo di questo con MySQL non sia del tutto completo. MySQLdb non esegue la sostituzione dei parametri nelle colonne, solo i valori (IIUC), quindi forse più come

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()))

Tuttavia, non stai eseguendo l'escape sulle colonne, quindi potresti voler controllare prima ....

Vedi http://mail.python.org/pipermail/tutor/ 2010-dicembre/080701.html per una soluzione più completa