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

MySQL PDO hvordan man binder parametre for IN()

Jeg fandt ud af det:

$ids = '1,2,3';

Eksploder $ids-strengen i et array:

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

Dette giver:

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

Opret en kommasepareret række af spørgsmålstegn. Antallet af spørgsmålstegn matcher antallet af matrixværdier

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

Dette producerer en streng, der ser sådan ud:

?,?,?

Sæt den streng ind i sql

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


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

Udfør forespørgslen ved at sende arrayet som en parameter

$stmt->execute($ids_array);



  1. MySQL:Tæl poster fra én tabel og opdater derefter en anden

  2. Begræns SQL ved summen af ​​rækkens værdi

  3. Skal jeg bruge én stor SQL Select-sætning eller flere små?

  4. Hvordan Tanh() virker i PostgreSQL