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()
Nie mogę zrozumieć, dlaczego powoduje to błąd. Rzeczywisty ciąg, który próbuję wstawić, ma 74 znaki, to jest: "/ gifs / epic-fail-photos-there-i-fixed-it-aww-man-the -tire-pressure-low.gif "
Próbowałem str (array [cnt]) przed wstawieniem go, ale ten sam problem się dzieje, baza danych ma tylko jedną kolumnę, która jest wartością TEKST.
Siedzę przy tym od godzin i nie wiem, co się dzieje.
%
Operator onstr
wykonuje tego rodzaju magię - traktuje krotkę jako wiele wartości, alestr
(lub jakikolwiek inny rodzaj iteracji) jako pojedynczą wartość. Ale to powoduje zamieszanie o wiele częściej niż je rozwiązuje, i dlatego prawie nic innego w standardowym katalogu standardowym nie próbuje tego rodzaju magii.%s
jest również zalecane ze względów bezpieczeństwa - docs.python.org/3/library/sqlite3.htmlcursor.execute(sql,array)
Przyjmuje tylko dwa argumenty.
Będzie iterować obiekt „tablica” i dopasować? w ciągu-sql.
(z kontrolą poprawności, aby uniknąć wstrzyknięcia sql)
źródło