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

PHP PDO bindParam untuk variabel/string yang digunakan untuk pernyataan IN...?

Apa yang dikatakan deceze di komentar itu benar. Ini cara yang pernah saya lakukan sebelumnya.

Pada dasarnya Anda membuat IN bagian dari string sql dengan mengulang nilai array dan menambahkan nama yang diikat.

$allow = array( 'red', 'blue' );

$sql = sprintf(
    "Select * from colors where type in ( %s )",
    implode(
        ',',
        array_map(
            function($v) {
                static $x=0;
                return ':allow_'.$x++;
            },
            $allow
        )
    )
);

Ini menghasilkan Select * from colors where type in ( :allow_0,:allow_1 )

Kemudian ulangi $allow array dan gunakan bindValue untuk mengikat setiap variabel.

foreach( $allow as $k => $v ){
    $stmnt->bindValue( 'allow_'.$k, $v );
}

Saya menambahkan ini sebelum menyadari deceze terkait dengan pertanyaan yang memberikan contoh serupa. Saya akan meninggalkan ini di sini karena ini menunjukkan bagaimana melakukannya dengan variabel terikat bernama dan bukan ?s



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara berhasil menulis ulang kode mysql-php lama dengan fungsi mysql_* yang tidak digunakan lagi?

  2. Bagaimana saya bisa memperbaiki Kesalahan Pemuatan MySQL

  3. Pilih baris dari tabel MySQL di mana stempel waktu PHP lebih tua dari X

  4. Bagaimana cara membuat database mySQL di lokal saya dapat diakses dari mesin yang berbeda?

  5. Bagaimana cara mengubah direktori data MySQL?