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

PHP PDO:Bagaimana cara menangani bindValue() dan kata kunci yang dicadangkan?

Saat Anda membuat string SQL (saya pikir prepare_update_string), serta di kedua loop foreach tempat Anda mengikat data, jalankan hitungan yang bertambah dan tambahkan ke nilai bind. Jadi ":status" menjadi ":status1".

Sesuatu seperti:

$i = 1;
foreach ($data as $k => $v) {
    $this->_sth->bindValue(":{$k.$i}", $v);
    $i++;
}

Ini akan memecahkan masalah kata kunci yang dipesan.

Ini juga memecahkan masalah (yang saya yakin akan Anda temui di masa mendatang) di mana Anda harus mengikat ke placeholder yang sama lebih dari sekali.

misalnya alih-alih yang berikut ini, yang memunculkan kesalahan karena dua ikatan pada :status placeholder

SELECT * from table WHERE `status` = :status AND `otherfield` = :status

Dengan hitungan yang bertambah, ini menjadi:

SELECT * from table WHERE `status` = :status1 AND `otherfield` = :status2

Selamat menikmati.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat membuat Instans RDS Aurora Multi-AZ

  2. mysql mengonversi dari UTC ke IST

  3. Apa set karakter terbaik untuk bidang email?

  4. Bagaimana cara memasukkan catatan dengan fungsi MySQL SEKARANG () di MySQLi dengan bind_param?

  5. Bagaimana Saya Dapat Memeriksa Tanggal yang Dikirim Antara Dua Tanggal di Database?