def insert(array):
connection=sqlite3.connect('images.db')
cursor=connection.cursor()
cnt=0
while cnt != len(array):
img = array[cnt]
print(array[cnt])
cursor.execute('INSERT INTO images VALUES(?)', (img))
cnt+= 1
connection.commit()
connection.close()
Não consigo entender por que isso está me dando o erro. A string real que estou tentando inserir tem 74 caracteres, é: "/ gifs / fotos-épicas-de-falha-lá-eu-consertei-o-aww-man-the -tire-pressures-low.gif "
Eu tentei str (array [cnt]) antes de inseri-lo, mas o mesmo problema está acontecendo, o banco de dados possui apenas uma coluna, que é um valor TEXT.
Estou nisso há horas e não consigo descobrir o que está acontecendo.
%
operador ativadostr
faz esse tipo de mágica - trata uma tupla como vários valores, mas astr
(ou qualquer outro tipo de iterável) como um valor único. Mas isso causa confusão com muito mais frequência do que resolve, e é por isso que quase nada no stdlib tenta esse tipo de mágica.%s
também não é recomendado por questões de segurança - docs.python.org/3/library/sqlite3.htmlLeva apenas dois argumentos.
Irá iterar o objeto "array" e corresponder? na string sql.
(com verificações de sanidade para evitar a injeção de sql)
fonte