Incorporer des listes Python dans des requêtes SQL en tant que paramètres
Vous possédez une liste Python (l) contenant des valeurs (par exemple, [1, 5, 8]), et vous souhaitez récupérer des données d'une table de base de données en fonction de ces éléments de liste. Plus précisément, votre objectif est d'émettre une requête SQL telle que :
select name from students where id = |IN THE LIST l|
Pour ce faire, envisagez d'utiliser une approche de requête paramétrée, qui est plus polyvalente et plus robuste que l'intégration de valeurs directement dans la chaîne SQL. Cette technique peut gérer efficacement les valeurs numériques et les valeurs de chaîne, éliminant ainsi tout problème d'échappement potentiel.
L'extrait de code Python suivant illustre cette approche :
placeholder= '?' # For SQLite. Adjust based on database parameter style. placeholders= ', '.join(placeholder for unused in l) query= 'SELECT name FROM students WHERE id IN (%s)' % placeholders cursor.execute(query, l)
En utilisant des espaces réservés (par exemple, '?' ) dans la requête SQL et en passant ensuite la liste (l) en paramètre, vous vous assurez que les valeurs sont gérées correctement par la base de données. Cette approche garantit l'intégrité des données et évite les vulnérabilités potentielles d'injection SQL qui pourraient résulter d'une concaténation de chaînes incontrôlée.
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!