PDO::exec() fungsi mengembalikan jumlah baris yang terpengaruh, termasuk 0 jika tidak ada baris yang terpengaruh.
Baris seperti ini akan die() karena exec akan mengembalikan 0 yang diinterpretasikan sebagai boolean salah.
$dblink->exec("UPDATE `sometable` SET `somecolumn`=0 WHERE `somecolumn`=0") or die("Never use die for error handling.");
Praktik penanganan kesalahan terbaik untuk PDO adalah menggunakan pengecualian PDO. Aktifkan pengecualian PDO (dari kelas PDOException, lihat dokumen) seperti ini:
//enable Exception mode (uncaught exceptions work just like die() with the benefit of giving you details in logs of where execution was stopped and for what reason)
$pdoDBHandle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Hapus or die() dan exit(); dan aktifkan mode pengecualian. Saya yakin ini akan memperbaiki masalah "aneh" Anda. Lihat juga melempar Pengecualian di PHP, bahkan dengan kode prosedural (untuk menggantikan die() dan exit() .
BTW exit menghentikan eksekusi seperti die , kecuali ini berguna dalam mode CLI karena mengembalikan kode sukses/kesalahan ke sistem operasi. Ini benar-benar tidak dimaksudkan untuk penanganan kesalahan.