PDO: Bolehkah saya Konfigurasikan Pengendalian Ralat Lalai untuk Membuang Pengecualian?
Untuk meningkatkan pengendalian ralat PDO, anda menyatakan keinginan untuk mempunyai pengecualian dilemparkan secara lalai dan bukannya menetapkan mod ralat secara manual.
Seperti contoh kod anda, anda pada masa ini gunakan kaedah setAttribute() untuk menentukan PDO::ERRMODE_EXCEPTION bagi setiap sambungan. Walaupun pendekatan ini berfungsi untuk keadaan tertentu, anda mencari konfigurasi global yang digunakan untuk semua sambungan PDO.
Malangnya, tiada pilihan konfigurasi dalam php.ini atau di tempat lain untuk menetapkan mod ralat lalai untuk PDO. Anda mesti menetapkannya secara eksplisit menggunakan setAttribute() untuk setiap sambungan yang anda buat.
Untuk menangani kesulitan ini, anda boleh membuat kelas pembungkus tersuai atau pustaka yang menetapkan mod ralat semasa pembinaan. Berikut ialah contoh:
class Db { public function __construct() { $this->pdo = new PDO('...', '...', '...', [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ]); } // Other database operations... }
Dengan menggunakan pembungkus ini, anda boleh memudahkan kod anda dan memastikan semua sambungan PDO memberikan pengecualian:
try { $db = new Db(); // Queries and operations } catch (PDOException $e) { // Error handling }
Walaupun pendekatan ini memperkenalkan pergantungan tambahan, ia menyediakan penyelesaian yang mudah untuk menguatkuasakan balingan pengecualian lalai untuk PDO.
Atas ialah kandungan terperinci Bolehkah Pengendalian Ralat Lalai PDO Dikonfigurasikan untuk Membuang Pengecualian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!