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
Lepaskan: 2024-12-19 22:11:10
asal
761 orang telah melayarinya

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

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

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

error_reporting(E_ALL);
ini_set('display_errors', 1);
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan