Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL PDO jak wiązać parametry dla IN()

Pomyślałem:

$ids = '1,2,3';

Rozbij ciąg $ids na tablicę:

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

Daje to:

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

Utwórz oddzielony przecinkami ciąg znaków zapytania. Liczba znaków zapytania odpowiada liczbie wartości tablicy

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

Daje to ciąg, który wygląda tak:

?,?,?

Umieść ten ciąg w sql

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


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

Wykonaj zapytanie, przekazując tablicę jako parametr

$stmt->execute($ids_array);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP- wstawianie danych binarnych w mysql za pomocą przygotowanych instrukcji

  2. Analog OUTER APPLY w innych RDBMS (nie SQL Server)

  3. MySQL groupwise MAX() zwraca nieoczekiwane wyniki

  4. Czy istnieje dobry sposób na wykonanie zrzutu SQL bazy danych MySQL w DataGrip?

  5. jak używać (useUnicode=yes characterEncoding=UTF-8 ) z DBCP