Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Passando valores para a operação MySQL IN na instrução preparada pelo PDO?


Você não pode passar vários valores em um único espaço reservado. Você terá que inserir um espaço reservado diferente para cada valor a ser passado para IN () . Como você não sabe quantos serão, use ? em vez de parâmetros nomeados.
$values = explode(',', $values) ;

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

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