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

MySQL PDO comment lier les paramètres pour IN()

J'ai compris :

$ids = '1,2,3';

Décomposez la chaîne $ids dans un tableau :

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

Cela donne :

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

Créez une chaîne de points d'interrogation séparés par des virgules. Le nombre de points d'interrogation correspond au nombre de valeurs du tableau

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

Cela produit une chaîne qui ressemble à :

?,?,?

Mettez cette chaîne dans le sql

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


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

Exécute la requête en passant le tableau en paramètre

$stmt->execute($ids_array);