Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL PDO wie man Parameter für IN() bindet

Ich habe es herausgefunden:

$ids = '1,2,3';

Explodieren Sie die $ids-Zeichenfolge in ein Array:

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

Das ergibt:

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

Erstellen Sie eine durch Kommas getrennte Zeichenfolge aus Fragezeichen. Die Anzahl der Fragezeichen entspricht der Anzahl der Array-Werte

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

Dies erzeugt eine Zeichenfolge, die wie folgt aussieht:

?,?,?

Fügen Sie diese Zeichenfolge in die SQL

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


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

Führen Sie die Abfrage aus und übergeben Sie das Array als Parameter

$stmt->execute($ids_array);