Heim >Datenbank >MySQL-Tutorial >Warum gibt mein Python-MySQL-Code den Fehler „Nicht alle Parameter wurden in der SQL-Anweisung verwendet' aus?
Nicht alle Parameter werden in der MySQL-Anweisung verwendet: Fehlerbehebung in Python
Einführung
Bei der Ausführung Bei SQL-Abfragen mit Python und der mysql.connector-Bibliothek ist es wichtig, die Parametermarkierungen in der SQL-Anweisung an der auszurichten Daten, die an den Cursor übergeben werden. Andernfalls kann der Fehler „In der SQL-Anweisung wurden nicht alle Parameter verwendet“ auftreten.
Fehler aufgetreten
Beachten Sie den folgenden Codeausschnitt:
import mysql.connector Name = "James" Department = "Finance" StartYear = 2001 CurrentPos = 2001 Link = "" add_user = ("INSERT INTO DB.tbluser " "(username, department, startyear, currentpos, link) " "VALUES (%s, %s, %d, %d, %s)") data_user = (Name, Department, StartYear, CurrentPos, Link)
Das Ausführen dieses Codes mit der Methode „cursor.execute()“ löst die Fehlermeldung „In der SQL-Anweisung wurden nicht alle Parameter verwendet“ aus. Fehler.
Analyse
Der Fehler tritt auf, weil die Parametermarkierung für die Felder StartYear und CurrentPos falsch ist. Der %d-Marker wird für Ganzzahlen verwendet, während die SQL-Anweisung %s-Marker für alle Parameter angibt.
Lösung
Um den Fehler zu beheben, sollten die %d-Marker verwendet werden durch %s-Marker ersetzt werden:
add_user = """INSERT INTO DB.tbluser (username, department, startyear, currentpos, link) VALUES (%s, %s, %s, %s, %s)"""
Diese Änderung stellt sicher, dass alle Parameter in der SQL-Anweisung ordnungsgemäß dargestellt werden und korrekt an die an übergebenen Daten gebunden werden können Cursor.
Hinweis
Obwohl die Parametermarkierungen in mysql.connector dem %s ähneln, das bei der Python-Zeichenfolgenformatierung verwendet wird, sind die beiden Syntaxen unterschiedlich. Andere Datenbankadapter verwenden möglicherweise andere Parametermarkierungen, z. B. ? in unserem SQL und SQLite3.
Das obige ist der detaillierte Inhalt vonWarum gibt mein Python-MySQL-Code den Fehler „Nicht alle Parameter wurden in der SQL-Anweisung verwendet' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!