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

Pernyataan yang disiapkan PDO Di dalam kelas

Anda tidak menggunakan fitur binding PDO dengan benar. Anda harus melakukan sesuatu seperti berikut:

public function update($table, $key, $value, $id) {
    $stmt = $this->conn->prepare(
        "UPDATE $table SET $key = :value WHERE id = :id"
    );
    return $stmt->execute(array(
        ':value' => $value,
        ':id' => $id
    ));
}

Pertama, Anda perlu meletakkan seluruh string untuk diikat ke dalam kunci array binding. Jadi Anda memasukkan ':id' daripada 'id' . Anda juga memasukkan variabel langsung ke dalam kueri dalam kasus $table dan $value , tetapi kemudian mencoba untuk mengikatnya satu sama lain, yang tidak masuk akal.

Sunting:nama tabel dan kolom tidak dapat diikat menggunakan PDO.




  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 memulai kenaikan otomatis dari titik tertentu?

  2. Apakah urutan kolom penting di tabel MySQL Anda?

  3. Pernyataan UPDATE dalam status akhir kueri

  4. mysql cocok dengan ~ contoh

  5. Apakah kueri pembaruan mysql mendapat manfaat dari indeks?