Heim > Backend-Entwicklung > Python-Tutorial > Warum gibt SQLite3 beim Einfügen von Daten den Fehler „Nicht übereinstimmende Bindungswertanzahl' aus?

Warum gibt SQLite3 beim Einfügen von Daten den Fehler „Nicht übereinstimmende Bindungswertanzahl' aus?

Linda Hamilton
Freigeben: 2024-11-29 01:15:13
Original
213 Leute haben es durchsucht

Why Does SQLite3 Throw a

SQLite3-Fehler: Nicht übereinstimmende Bindungswertanzahl

Beim Einfügen von Werten in eine SQLite3-Datenbank mithilfe der Methode „cursor.execute()“ ist es wichtig, Folgendes zu beachten: Stellen Sie sicher, dass die Anzahl der bereitgestellten Bindungswerte mit der in den Parametern der SQL-Anweisung angegebenen Anzahl übereinstimmt. Andernfalls kann ein Fehler wie „Falsche Anzahl der bereitgestellten Bindungen“ auftreten.

Beachten Sie den folgenden Codeausschnitt:

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()
Nach dem Login kopieren

Beim Versuch, eine Zeichenfolge mit der Länge 74 einzufügen, wird dieser Code angezeigt löst den oben genannten Fehler aus. Der Grund dafür ist, dass die Methode „cursor.execute()“ eine Folge von Bindungswerten erwartet, während (img) nur ein Ausdruck ist.

Um dies zu beheben, müssen wir (img) in ein Tupel oder eine Liste konvertieren durch Hinzufügen eines Kommas. Hier ist der korrigierte Code:

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,))  # Add a comma
            cnt+= 1
    connection.commit()
    connection.close()
Nach dem Login kopieren

Alternativ können wir ein Listenliteral verwenden:

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

Das obige ist der detaillierte Inhalt vonWarum gibt SQLite3 beim Einfügen von Daten den Fehler „Nicht übereinstimmende Bindungswertanzahl' aus?. 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