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

Inserisci l'elenco nel mio database usando Python

La risposta alla tua domanda originale è:No, non puoi inserire un elenco del genere.

Tuttavia, con alcune modifiche, potresti far funzionare quel codice usando %r e passando in una tupla:

variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1, variable_2]
print "INSERT INTO table VALUES %r;" % (tuple(varlist),)

Sfortunatamente, questo stile di inserimento delle variabili lascia il tuo codice vulnerabile agli Attacchi SQL injection .

Ti consigliamo invece di utilizzare API DB di Python e costruire una stringa di query personalizzata con più punti interrogativi per i dati da inserire:

variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1,variable_2]
var_string = ', '.join('?' * len(varlist))
query_string = 'INSERT INTO table VALUES (%s);' % var_string
cursor.execute(query_string, varlist)

L'esempio all'inizio dei documenti SQLite3 mostra come passare argomenti usando i punti interrogativi e spiega perché sono necessari (essenzialmente, assicura la corretta quotazione delle tue variabili).