Rumah > pangkalan data > tutorial mysql > Bolehkah Pengendalian Ralat Lalai PDO Dikonfigurasikan untuk Membuang Pengecualian?

Bolehkah Pengendalian Ralat Lalai PDO Dikonfigurasikan untuk Membuang Pengecualian?

DDD
Lepaskan: 2024-11-27 04:34:16
asal
226 orang telah melayarinya

Can PDO's Default Error Handling Be Configured to Throw Exceptions?

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...
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan