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 to daje mi błąd, Faktyczny ciąg, który próbuję wstawić, ma 74 znaki, to jest: "/ gifs/epic-fail -photos-there-i-fix-it-aww-man-the-tire-pressure-low.gif "sqlite3.ProgrammingError: podano niepoprawną liczbę powiązań. Bieżące oświadczenie używa 1, a jest 74 dostarczonych
Próbowałem str (tablica [cnt]) przed wstawieniem go, ale ten sam problem jest dzieje się, baza danych ma tylko jedną kolumnę, która jest wartością TEXT.
Byłem w tym od wielu godzin i nie wiem, co się dzieje.
Jesteśmy mnóstwo zaawansowanych koderów, które uczyniły ten błąd, więc nie trzeba czuć się głupio. :) – MrGumble
To mnie też. Jeśli oszukują "zaawansowanych koderów", oznacza to, że jest to nieintuicyjne. IMHO byłoby bardziej naturalne, jeśli execute() wziął pojedynczą wartość zamiast jednej wartości krotki, jeśli jest tylko jedna? w zapytaniu. W każdym razie, dzięki za podpowiedź! –
@ user465139: Operator '%' na 'str' robi tego rodzaju magię - traktuje krotkę jako wiele wartości, ale" str "(lub jakikolwiek inny rodzaj iteracji) jako pojedynczą wartość. Ale to powoduje zamieszanie znacznie częściej, niż rozwiązuje to, dlatego prawie nic innego w stdlibach nie próbuje tego rodzaju magii. – abarnert