Verwenden Sie die list_of_ids
direkt:
format_strings = ','.join(['%s'] * len(list_of_ids))
cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings,
tuple(list_of_ids))
Auf diese Weise müssen Sie sich nicht selbst zitieren und vermeiden alle Arten von SQL-Einschleusungen.
Beachten Sie, dass die Daten (list_of_ids
) geht als Parameter (nicht im Abfragetext) direkt an den MySQL-Treiber, sodass keine Injektion erfolgt. Sie können beliebige Zeichen in der Zeichenfolge belassen, ohne dass Zeichen entfernt oder in Anführungszeichen gesetzt werden müssen.