sql >> Databasteknik >  >> RDS >> Mysql

MySQL PDO hur man binder params för IN()

Jag kom på det:

$ids = '1,2,3';

Explodera $ids-strängen till en array:

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

Detta ger:

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

Skapa en kommaavgränsad sträng med frågetecken. Antalet frågetecken matchar antalet matrisvärden

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

Detta producerar en sträng som ser ut som:

?,?,?

Lägg den strängen i sql

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


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

Kör frågan och skicka arrayen som en parameter

$stmt->execute($ids_array);



  1. Hur man listar tabeller i den aktuella databasen med PostgreSQL

  2. Kontrollera om det finns, uppdatera i så fall med 1++, om inte infoga

  3. Hur ringer man en PROCEDUR i MySQL?

  4. Hur konverterar jag detta från TSQL till MYSQL?