sql >> Base de Datos >  >> RDS >> Mysql

MySQL PDO cómo vincular parámetros para IN ()

Lo descubrí:

$ids = '1,2,3';

Explota la cadena $ids en una matriz:

$ids_array = explode(',', $ids);

Esto da:

$ids_array[] = 1;
$ids_array[] = 2;
$ids_array[] = 3;

Cree una cadena de signos de interrogación delimitada por comas. El número de signos de interrogación coincide con el número de valores de matriz

$in  = str_repeat('?,', count($ids_array) - 1) . '?';

Esto produce una cadena que se parece a:

?,?,?

Pon esa cadena en el sql

$q = "SELECT *
    FROM table
    WHERE id IN($in) ";


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

Ejecuta la consulta, pasando la matriz como parámetro

$stmt->execute($ids_array);