TypeError: Nicht alle Argumente werden während der Zeichenfolgenformatierung in parametrisierten SQL-Abfragen konvertiert
Ihr Code für eine parametrisierte SQL-Abfrage löst den Fehler „TypeError: „Nicht alle Argumente werden während der Zeichenfolgenformatierung konvertiert“, da Sie versuchen, eine Zeichenfolge direkt in der Abfrage zu ersetzen. Dieser Ansatz funktioniert nicht, da er erwartet, dass eine Liste von Argumenten in die Abfrage konvertiert wird.
Um dieses Problem zu beheben, anstatt Folgendes zu verwenden:
cur.execute( "SELECT * FROM records WHERE email LIKE '%s'", search )
Ändern Sie Ihren Code wie folgt:
cur.execute( "SELECT * FROM records WHERE email LIKE %s", [search] )
Gemäß der MySQLdb-Dokumentation stellt der zweite Parameter vonexecute() eine Liste von Objekten dar, die konvertiert werden sollen, sodass eine beliebige Anzahl von Objekten in einem einzigen Objekt möglich ist Abfrage. In Ihrem Fall muss es trotz nur eines Objekts immer noch iterierbar sein.
Das obige ist der detaillierte Inhalt vonWie behebt man „TypeError: Not All Arguments Converted' in parametrisierten MySQL-Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!