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()
No puedo entender por qué esto me está dando el error. La cadena real que estoy tratando de insertar es de 74 caracteres, es: "/ gifs / epic-fail-photos-there-i-fixed-it-aww-man-the -tire-pressures-low.gif "
Intenté str (array [cnt]) antes de insertarlo, pero ocurre el mismo problema, la base de datos solo tiene una columna, que es un valor de TEXTO.
He estado en esto durante horas y no puedo entender qué está pasando.
%
operador enstr
hace ese tipo de magia: trata una tupla como valores múltiples, pero unstr
(o cualquier otro tipo de iterable) como un valor único. Pero eso causa confusión mucho más a menudo de lo que lo resuelve, razón por la cual casi nada más en el stdlib intenta ese tipo de magia.%s
tampoco se recomienda usar para problemas de seguridad - docs.python.org/3/library/sqlite3.htmlSolo toma dos argumentos.
¿Iterará el objeto "array" y coincidirá? en la cadena sql.
(con controles de cordura para evitar la inyección de sql)
fuente