Heim >Datenbank >MySQL-Tutorial >Wie verwende ich eine Python-Liste sicher in einer MySQL-IN-Klausel?
Wenn Sie versuchen, eine Liste von IDs in einer IN-Klausel in einer MySQL-Abfrage zu verwenden, ist es wichtig, Folgendes zu tun Gewährleisten Sie die Sicherheit des Vorgangs und vermeiden Sie potenzielle Sicherheitslücken durch SQL-Injection. Anstatt die Liste einer Zeichenfolge zuzuordnen und sie direkt in der Abfrage zu verwenden, was sie anfällig macht, besteht ein sichererer Ansatz darin, die Liste direkt als Parameter zu verwenden.
Um dies zu erreichen, kann man eine Formatzeichenfolge verwenden Generieren Sie die entsprechende Anzahl von Platzhaltern (%s) basierend auf der Länge der Liste. Die Liste selbst wird dann als Tupel an die Funktionexecute() übergeben, wodurch die Notwendigkeit manueller Anführungszeichen und Escapezeichen vermieden wird.
format_strings = ','.join(['%s'] * len(list_of_ids)) cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings, tuple(list_of_ids))
Durch das Senden der Daten (list_of_ids) als Parameter werden diese von verarbeitet MySQL-Treiber direkt, wodurch das Risiko einer Injektion vermieden wird. Diese Methode ermöglicht die Beibehaltung aller Zeichen innerhalb der Zeichenfolge, ohne dass eine zusätzliche Bereinigung oder Anführungszeichen erforderlich ist.
Das obige ist der detaillierte Inhalt vonWie verwende ich eine Python-Liste sicher in einer MySQL-IN-Klausel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!