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()
Ich kann nicht herausfinden, warum dies mir den Fehler gibt. Die tatsächliche Zeichenfolge, die ich einzufügen versuche, ist 74 Zeichen lang. Sie lautet: "/ gifs / epic-fail-photos-there-i-fixed-it-aww-man-the -Reifendruck-niedrig.gif "
Ich habe versucht, str (array [cnt]) vor dem Einfügen zu verwenden, aber das gleiche Problem tritt auf. Die Datenbank hat nur eine Spalte, bei der es sich um einen TEXT-Wert handelt.
Ich bin schon seit Stunden dabei und kann nicht herausfinden, was los ist.
%
Operator aufstr
macht diese Art von Magie - er behandelt ein Tupel als mehrere Werte, aber einstr
(oder eine andere Art von iterierbarem) Wert als einen einzelnen Wert. Aber das führt weitaus häufiger zu Verwirrung als zu einer Lösung, weshalb fast nichts anderes in der stdlib diese Art von Magie versucht.Nimmt nur zwei Argumente.
Es wird das "Array" -Objekt iterieren und übereinstimmen? in der SQL-Zeichenfolge.
(mit Sanity Checks zur Vermeidung von SQL-Injektionen)
quelle