Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Inserir lista no meu banco de dados usando Python


A resposta para sua pergunta original é:Não, você não pode inserir uma lista assim.

No entanto, com alguns ajustes, você pode fazer esse código funcionar usando %r e passando uma tupla:
variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1, variable_2]
print "INSERT INTO table VALUES %r;" % (tuple(varlist),)

Infelizmente, esse estilo de inserção de variável deixa seu código vulnerável a ataques de injeção de SQL .

Em vez disso, recomendamos usar a API de banco de dados do Python e construindo uma string de consulta personalizada com vários pontos de interrogação para os dados a serem inseridos:
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)

O exemplo no início dos documentos SQLite3 mostra como passar argumentos usando os pontos de interrogação e explica por que eles são necessários (essencialmente, garante a citação correta de suas variáveis).