Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Mesej Ralat PDO Saya Kosong Walaupun Menetapkan Mod Ralat?

Mengapa Mesej Ralat PDO Saya Kosong Walaupun Menetapkan Mod Ralat?

Patricia Arquette
Lepaskan: 2024-12-18 20:45:14
asal
251 orang telah melayarinya

Why Are My PDO Error Messages Empty Despite Setting Error Modes?

Mengekstrak Mesej Ralat daripada PDO: Menyelesaikan Masalah Respons Tidak Lengkap

Apabila bekerja dengan PDO (Objek Data PHP), mendapatkan semula mesej ralat boleh menjadi mencabar. Isu ini timbul apabila anda telah menetapkan mod ralat untuk memaparkan amaran atau pengecualian, tetapi anda masih gagal mengeluarkan maklumat ralat yang dijangkakan.

Dalam contoh yang diberikan, kod menetapkan mod ralat kepada amaran:

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
Salin selepas log masuk

Tetapi pernyataan print_r() untuk PDOStatement dan errorInfo() mengembalikan output kosong. Untuk menyelesaikan masalah ini:

  • Sahkan Penyata Disediakan Asli: Pemacu MySQL menyokong pernyataan yang disediakan asli. Pastikan versi MySQL anda serasi (4.1 atau lebih baru).
  • Timpa Penyediaan Ditiru: Secara lalai, PDO menggunakan kenyataan yang disediakan ditiru apabila MySQL melaporkan untuk menyokongnya. Jika anda mengalami masalah, cuba tetapkan pemacu PDO secara eksplisit untuk menggunakan pernyataan asli:
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ATTR_PERSISTENT);
Salin selepas log masuk
  • Tukar kepada Pengendalian Pengecualian: PDO boleh membuang pengecualian apabila ralat berlaku. Daripada menggunakan amaran, cuba tetapkan mod ralat kepada pengendalian pengecualian:
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Salin selepas log masuk

Perubahan ini seharusnya mencetuskan pengecualian apabila pertanyaan SQL yang tidak sah dilaksanakan, memberikan anda maklumat ralat yang diperlukan.

Atas ialah kandungan terperinci Mengapa Mesej Ralat PDO Saya Kosong Walaupun Menetapkan Mod Ralat?. 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