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.