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.