sql >> Database >  >> RDS >> Mysql

MySQL PDO hoe params te binden voor IN()

Ik heb het bedacht:

$ids = '1,2,3';

Explodeer de $ids string in een array:

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

Dit geeft:

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

Maak een door komma's gescheiden reeks vraagtekens. Het aantal vraagtekens komt overeen met het aantal matrixwaarden

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

Dit levert een string op die er als volgt uitziet:

?,?,?

Zet die string in de sql

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


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

Voer de query uit en geef de array door als parameter

$stmt->execute($ids_array);



  1. Hoe krijg je een kolom met mysql_query-resultaten in een array?

  2. Interne onderdelen van de zeven SQL Server-soorten - deel 2

  3. Krijg fout 1366 Onjuist geheel getal:'1' bij het importeren van bestand

  4. Wat is het beste DBMS voor de job?