Heim > Backend-Entwicklung > Python-Tutorial > Warum schlägt meine SQLite-INSERT-Anweisung mit „Falscher Anzahl von Bindungen' für lange Zeichenfolgen fehl?

Warum schlägt meine SQLite-INSERT-Anweisung mit „Falscher Anzahl von Bindungen' für lange Zeichenfolgen fehl?

Linda Hamilton
Freigeben: 2024-11-30 10:23:15
Original
807 Leute haben es durchsucht

Why Does My SQLite INSERT Statement Fail with

Falsche Anzahl von Bindungen

Beim Versuch, eine Zeichenfolge mit dem folgenden Code in eine SQLite-Datenbank einzufügen, tritt ein Fehler auf, der auf eine falsche Zahl hinweist von Bindungen:

def insert(array):
    connection=sqlite3.connect('images.db')
    cursor=connection.cursor()
    cnt=0
    while cnt != len(array):
            img = array[cnt]
            cursor.execute('INSERT INTO images VALUES(?)', (img))
            cnt+= 1
    connection.commit()
    connection.close()
Nach dem Login kopieren

Die Fehlermeldung erscheint, wenn die einzufügende Zeichenfolge 74 Zeichen lang ist lang.

Die Wurzel des Problems

Der Code versucht, eine Folge von Elementen als Bindungswerte an die Methodeexecute() zu übergeben. Der Bindungswertparameter erfordert jedoch ein Tupel, und der Code versäumt es, das zum Erstellen eines Tupels erforderliche Komma bereitzustellen.

cursor.execute('INSERT INTO images VALUES(?)', (img)) # Missing comma
Nach dem Login kopieren

Der Fix

Um das zu beheben Problem, fügen Sie am Ende des Bindungswertparameters ein Komma hinzu, um ein Tupel zu erstellen:

cursor.execute('INSERT INTO images VALUES(?)', (img,))
Nach dem Login kopieren

Alternativ können Sie eine Liste verwenden Literal, das auch als gültige Sequenz erkannt wird:

cursor.execute('INSERT INTO images VALUES(?)', [img])
Nach dem Login kopieren

Bei beiden Korrekturen fügt der Code den Bildpfad korrekt in die Datenbank ein, ohne die Fehlermeldung über eine falsche Anzahl von Bindungen auszulösen.

Das obige ist der detaillierte Inhalt vonWarum schlägt meine SQLite-INSERT-Anweisung mit „Falscher Anzahl von Bindungen' für lange Zeichenfolgen fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage