Les valeurs d'un tableau peuvent-elles être liées à une condition IN() dans une requête PDO ?
Liaison d'un tableau de valeurs à un IN() La condition utilisant PDO est possible, mais elle nécessite la construction manuelle d'un espace réservé. Voici comment :
Voici un exemple :
$ids = [1, 2, 3, 7, 8, 9]; $inQuery = str_repeat('?,', count($ids) - 1) . '?'; // ?,?,?,?,?,? $stmt = $db->prepare("SELECT * FROM table WHERE id IN($inQuery)"); $stmt->execute($ids);
En cas d'espaces réservés nommés :
Voici un exemple :
$ids = [1, 2, 3]; $in = ""; $i = 0; // external counter foreach ($ids as $item) { $key = ":id" . $i++; $in .= ($in ? "," : "") . $key; // :id0,:id1,:id2 $in_params[$key] = $item; // collect values } $sql = "SELECT * FROM table WHERE id IN ($in)"; $stmt = $db->prepare($sql); $stmt->execute(array_merge(["foo" => "foo", "bar" => "bar"], $in_params));
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!