Maison > développement back-end > tutoriel php > Comment supprimer plusieurs éléments avec « WHERE... IN » dans les instructions préparées PDO ?

Comment supprimer plusieurs éléments avec « WHERE... IN » dans les instructions préparées PDO ?

Mary-Kate Olsen
Libérer: 2024-10-31 22:34:02
original
666 Les gens l'ont consulté

How to Delete Multiple Items with `WHERE... IN` in PDO Prepared Statements?

Requêtes PDO avec des clauses "WHERE... IN"

Lors de l'utilisation de la clause "WHERE... IN" dans les requêtes PDO, les développeurs rencontrent souvent des problèmes entraînant uniquement la suppression du premier élément de la liste. Cela est dû à l'incompatibilité du mélange de valeurs (nombres) avec la logique du flux de contrôle (virgules) dans les instructions préparées. Pour résoudre ce problème, chaque valeur de la liste nécessite son propre espace réservé.

Solution :

  1. Séparez les valeurs dans un tableau, par exemple :
$idlist = array('260','201','221','216','217','169','210','212','213');
Copier après la connexion
  1. Construisez une chaîne de points d'interrogation représentant les espaces réservés pour chaque valeur, séparés par une virgule eux, par exemple :
$questionmarks = str_repeat("?,", count($idlist)-1) . "?";
Copier après la connexion
  1. Préparez la requête avec les points d'interrogation comme paramètres de clause "IN", par exemple :
$stmt = $dbh->prepare("DELETE FROM `foo` WHERE `id` IN ($questionmarks)");
Copier après la connexion
  1. Parcourez le tableau $idlist et liez chaque valeur à un espace réservé, par exemple :
foreach ($idlist as $id) {
  $stmt->bindParam($i, $id);
  $i++; 
}
Copier après la connexion

Une fois l'instruction préparée et les paramètres liés, l'exécution de la requête entraînera la suppression réussie de tous les éléments spécifiés dans le tableau $idlist.

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