Rumah >pembangunan bahagian belakang >tutorial php >Pertanyaan PDO Gagal Secara Senyap: Bagaimana Saya Mendapatkan Mesej Ralat PDO?

Pertanyaan PDO Gagal Secara Senyap: Bagaimana Saya Mendapatkan Mesej Ralat PDO?

Patricia Arquette
Patricia Arquetteasal
2024-12-19 22:11:10760semak imbas

PDO Query Fails Silently: How Do I Get PDO Error Messages?

Soalan Lazim Mengenai PDO: Kegagalan Pertanyaan PDO dan Pengendalian Ralat

PDO (Objek Data PHP) menawarkan antara muka piawai untuk berinteraksi dengan sistem pangkalan data yang berbeza. Walau bagaimanapun, beberapa cirinya mungkin tidak dikenali oleh pembangun PHP, yang membawa kepada soalan biasa mengenai pernyataan yang disediakan dan pengendalian ralat. Artikel ini menangani salah satu soalan lazim ini:

Pertanyaan PDO Gagal tetapi Saya Tidak Nampak Sebarang Ralat. Bagaimana untuk Mendapatkan Mesej Ralat daripada PDO?

Untuk menyelesaikan isu ini, adalah penting untuk mendayakan pengendalian pengecualian PDO. Secara lalai, PDO mengendalikan ralat sebagai ralat PHP biasa, yang mungkin tidak kelihatan. Untuk mengendalikan ralat sebagai pengecualian, tetapkan atribut PDO ERRMODE kepada PDO::ERRMODE_EXCEPTION apabila membuat sambungan. Ini membolehkan PDO membuang pengecualian pada ralat pangkalan data, menjadikannya tersedia untuk pengendalian ralat.

Berikut ialah contoh menyediakan sambungan PDO dengan pengendalian pengecualian:

$dsn = "mysql:host=$host;dbname=$db;charset=utf8";
$opt = array(
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    // other options
);
$pdo = new PDO($dsn, $user, $pass, $opt);

Dengan tetapan ini, semua ralat pangkalan data akan dibuang sebagai pengecualian. Pengecualian ini boleh ditangkap menggunakan blok try..catch atau pengendali ralat khusus. Pengecualian yang tidak ditangkap akan bertindak sebagai ralat PHP biasa, mengikut tetapan pelaporan ralat seluruh tapak.

Adalah penting untuk memastikan bahawa ralat PHP dapat dilihat. Pada pelayan pengeluaran, adalah disyorkan untuk mengelog ralat dan bukannya memaparkannya pada skrin. Ini boleh dicapai dengan menetapkan:

error_reporting(E_ALL);
ini_set('display_errors', 0);
ini_set('log_errors', 1);

Pada pelayan pembangunan, mungkin lebih mudah untuk memaparkan ralat pada skrin:

error_reporting(E_ALL);
ini_set('display_errors', 1);

Sentiasa elakkan menggunakan operator penindasan ralat (@ ) sebelum pernyataan PDO, kerana ini boleh menyembunyikan maklumat ralat yang penting.

Atas ialah kandungan terperinci Pertanyaan PDO Gagal Secara Senyap: Bagaimana Saya Mendapatkan Mesej Ralat PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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