Implosion de listes pour des clauses MySQL IN sécurisées
Pour utiliser en toute sécurité une liste d'ID dans une clause MySQL IN et éviter l'injection SQL, utilisez MySQL capacités de paramétrage au lieu d'imploser manuellement la liste et d'y échapper vous-même.
format_strings = ','.join(['%s'] * len(list_of_ids)) cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings, tuple(list_of_ids))
Cette approche a plusieurs avantages :
Notez que les données sont transmises sous forme de tuple de valeurs, qui peut être utilisé en toute sécurité dans les requêtes MySQL. La variable format_strings crée une liste d'espaces réservés séparés par des virgules pour les paramètres.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!