Parametrierte SQL-Abfragen: Navigieren zu „TypeError: Nicht alle Argumente wurden während der Zeichenfolgenformatierung konvertiert“
In MySQLdb kann die Ausführung parametrisierter SQL-Abfragen dazu führen a „TypeError: Nicht alle Argumente wurden während der Zeichenfolgenformatierung konvertiert.“ Dieser Fehler tritt auf, wenn die Abfrage eine bestimmte Anzahl von Argumenten erwartet, die bereitgestellten Argumente jedoch nicht der Erwartung entsprechen.
Um diesen Fehler zu beheben, ersetzen Sie die alte Syntax durch einen moderneren Ansatz. Anstelle von:
cur.execute("SELECT * FROM records WHERE email LIKE '%s'", search)
Verwenden Sie diese Syntax:
cur.execute("SELECT * FROM records WHERE email LIKE %s", [search])
Der zweite Parameter inexecute() ist jetzt eine Liste mit den zu konvertierenden Argumenten. Jedes Argument in dieser Liste muss in den erwarteten Datentyp in der Abfrage konvertierbar sein. In diesem Fall erwartet die Abfrage eine Zeichenfolge, daher muss die Suche in eine Liste mit einem Element eingeschlossen werden.
Das obige ist der detaillierte Inhalt vonWarum löst meine parametrisierte MySQL-Abfrage einen „TypeError: Nicht alle Argumente wurden während der Zeichenfolgenformatierung konvertiert' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!