Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL PDO cara mengikat params untuk IN()

Saya menemukan jawabannya:

$ids = '1,2,3';

Meledak string $ids ke dalam array:

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

Ini memberikan:

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

Buat string tanda tanya yang dipisahkan koma. Jumlah tanda tanya sesuai dengan jumlah nilai larik

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

Ini menghasilkan string yang terlihat seperti:

?,?,?

Masukkan string itu ke dalam sql

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


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

Jalankan kueri, dengan meneruskan array sebagai parameter

$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. Ekspor data analitik saya dan masukkan ke dalam database

  2. UPDATE atau INSERT MySQL Python

  3. Memasukkan data ke MySQL dari array multidimensi di php

  4. driver jdbc mysql tidak mendukung pembatas dalam pemicu dengan banyak pernyataan

  5. pilih kueri di wordpress