Heim >Backend-Entwicklung >Python-Tutorial >Warum löst meine parametrisierte MySQL-Abfrage einen „TypeError: Nicht alle Argumente wurden während der Zeichenfolgenformatierung konvertiert' aus?

Warum löst meine parametrisierte MySQL-Abfrage einen „TypeError: Nicht alle Argumente wurden während der Zeichenfolgenformatierung konvertiert' aus?

Linda Hamilton
Linda HamiltonOriginal
2024-12-03 04:58:09244Durchsuche

Why Does My Parameterized MySQL Query Throw a

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!

Stellungnahme:
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