Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL PDO come associare parametri per IN()

Ho capito:

$ids = '1,2,3';

Esplodi la stringa $ids in un array:

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

Questo dà:

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

Crea una stringa di punti interrogativi delimitata da virgole. Il numero di punti interrogativi corrisponde al numero di valori dell'array

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

Questo produce una stringa che assomiglia a:

?,?,?

Metti quella stringa in sql

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


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

Eseguire la query, passando l'array come parametro

$stmt->execute($ids_array);