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 :
$idlist = array('260','201','221','216','217','169','210','212','213');
$questionmarks = str_repeat("?,", count($idlist)-1) . "?";
$stmt = $dbh->prepare("DELETE FROM `foo` WHERE `id` IN ($questionmarks)");
foreach ($idlist as $id) { $stmt->bindParam($i, $id); $i++; }
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!