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

PDOStatement::execute() mengembalikan nilai true tetapi data tidak diperbarui

Ketika execute() mengembalikan benar itu berarti pernyataan itu "berhasil", tetapi itu tidak berarti itu mengubah apa pun. Itu hanya berarti tidak ada kesalahan.

  • Ini mungkin cocok dengan nol baris karena kondisi dalam klausa WHERE. Itu masih dianggap sebagai "sukses". Anda dapat mencoba SELECT dengan klausa WHERE yang sama, dan ambil hasilnya, untuk mengonfirmasi bahwa klausa tersebut cocok dengan baris.

  • Ini mungkin cocok dengan satu atau beberapa baris, tetapi nilai yang Anda tetapkan sudah menjadi nilai pada baris tersebut. Anda dapat memanggil $sth->rowCount() setelah Anda jalankan, untuk mengetahui berapa banyak baris UPDATE terpengaruh (ini mungkin kurang dari jumlah baris yang cocok).

  • Jika Anda memiliki lebih dari satu salinan tabel ini, Anda harus memeriksa ulang apakah perubahan telah dibuat dalam database yang Anda baca. Kadang-kadang terjadi pada saya -- saya lupa mengubah file konfigurasi aplikasi, dan saya tidak menyadari bahwa saya memperbarui database yang salah.

Ini ternyata masalahnya -- variasi pada poin ketiga:

  • Jika Anda bekerja di lebih dari satu server, periksa juga apakah Anda memeriksa perubahan pada server mysql yang benar.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagian Kritis PHP/MySQL

  2. ElasticSearch sungai JDBC MySQL tidak menghapus catatan

  3. Menginstal MySQLdb di Mac OS X

  4. Mencari nomor telepon di mysql

  5. Mesin pencari 'pintar' PHP untuk mencari saran tabel MySQL