Comment puis-je utiliser une liste Python comme paramètres dans une clause SQL `IN` ?

Patricia Arquette
Libérer: 2024-11-20 13:15:15
original
412 Les gens l'ont consulté

How Can I Use a Python List as Parameters in an SQL `IN` Clause?

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|
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal