Konfigurasi Pengendalian Pengecualian PDO
Sebagai pembangun, anda mungkin memilih untuk mempunyai pengecualian lempar PDO secara lalai. Ini menghapuskan keperluan untuk menetapkan mod pengendalian ralat secara eksplisit setiap kali anda membuat sambungan pangkalan data. Walaupun anda boleh menetapkan mod ralat secara manual menggunakan $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION), anda mungkin tertanya-tanya sama ada terdapat cara untuk menjadikannya gelagat lalai.
Pengendalian Pengecualian Lalai
Malangnya, tiada konfigurasi terbina dalam fail atau pilihan dalam fail php.ini yang membolehkan anda menetapkan PDO untuk membuang pengecualian secara lalai. Ini kerana PHP mengendalikan pengendalian ralat secara global, dan ia tidak khusus untuk PDO.
Penyelesaian
Untuk mencapai gelagat yang anda inginkan, anda mempunyai dua pilihan:
1. Argumen Pembina
Anda boleh menghantar pelbagai pilihan kepada pembina PDO, termasuk mod pengendalian ralat:
$pdo = new PDO('mysql:host=localhost;dbname=someDatabase', 'username', 'password', array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ));
2. Kelas Pembungkus
Sebagai alternatif, anda boleh membuat kelas pembungkus yang memanjangkan PDO dan sentiasa menetapkan mod ralat kepada mod pengecualian:
class MyPDO extends PDO { public function __construct($dsn, $username, $password) { parent::__construct($dsn, $username, $password, array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION )); } }
Dengan pendekatan ini, anda boleh menggunakan tersuai anda Kelas PDO dan bukannya kelas PDO biasa dan sentiasa mendapat gelagat pengendalian pengecualian:
$pdo = new MyPDO('mysql:host=localhost;dbname=someDatabase', 'username', 'password');
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membuat Pengecualian Balingan PDO secara Lalai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!