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

MySQL PDO como vincular parâmetros para IN ()


Eu percebi:
$ids = '1,2,3';

Exploda a string $ids em um array:
$ids_array = explode(',', $ids);

Isto dá:
$ids_array[] = 1;
$ids_array[] = 2;
$ids_array[] = 3;

Crie uma sequência de pontos de interrogação delimitada por vírgulas. O número de pontos de interrogação corresponde ao número de valores de matriz
$in  = str_repeat('?,', count($ids_array) - 1) . '?';

Isso produz uma string que se parece com:
?,?,?

Coloque essa string no sql
$q = "SELECT *
    FROM table
    WHERE id IN($in) ";


$stmt = $this->db->prepare($q);

Execute a consulta, passando o array como parâmetro
$stmt->execute($ids_array);