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

PDO - kueri tidak memberikan hasil

Masalahnya di sini adalah Anda mengikat parameter dengan bindParam , yang menggunakan pengikatan dengan referensi. Dalam kasus Anda, Anda harus menggunakan bindValue sebagai gantinya:

foreach( $binders as $key => $value ) {
    $sql->bindValue( $key, $value );
}

Atau Anda dapat meneruskan array Anda langsung ke execute() metode:

$sql->execute( $binders );

Seperti yang dijelaskan dalam manual:

the variable is bound as a reference and will only be evaluated at the time that PDOStatement::execute() is called.

Jadi ketika loop foreach Anda berakhir $value memiliki nilai item array terakhir Apple . Jadi ketika execute berjalan, keduanya :ctid dan :p1 nilai menjadi sama dengan Apple . Tentunya, ini bukan yang Anda inginkan)



  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 memperbaikinya (2002, Tidak dapat terhubung ke server MySQL lokal melalui soket '/tmp/mysql.sock' (2)) di ec2 bitnami?

  2. Android:cara mengunggah gambar di mysql menggunakan php

  3. Cetak baris acak dari kueri mysql

  4. PHP/mysql:Beri peringkat pengguna berdasarkan klik

  5. garis bawah dalam variabel db php menyebabkan masalah