Mysql
 sql >> Base de données >  >> RDS >> Mysql

Passer des valeurs à l'opération MySQL IN dans l'instruction préparée PDO ?

Vous ne pouvez pas transmettre plusieurs valeurs dans un même espace réservé. Vous devrez entrer un espace réservé différent pour chaque valeur à passer dans IN () . Puisque vous ne savez pas combien il y en aura, utilisez ? au lieu de paramètres nommés.

$values = explode(',', $values) ;

$placeholders = rtrim(str_repeat('?, ', count($values)), ', ') ;
$query = "SELECT * FROM table WHERE id IN ($placeholders)";

$stm = $db->prepare($query) ;
$stm->execute($values) ;