Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Pertanyaan PDO Saya Tidak Menunjukkan Mesej Ralat?

Mengapa Pertanyaan PDO Saya Tidak Menunjukkan Mesej Ralat?

Linda Hamilton
Linda Hamiltonasal
2024-12-26 04:54:15323semak imbas

Why Aren't My PDO Queries Showing Error Messages?

Rujukan PDO: Menyelesaikan Ralat Sambungan Pangkalan Data Biasa

Pengenalan

PDO (Objek Data PHP ) menawarkan interaksi pangkalan data yang mantap, tetapi pengguna sering menghadapi ralat disebabkan ciri khususnya. Artikel ini bertujuan untuk menangani salah satu isu yang paling lazim: ketidakupayaan untuk mendapatkan semula mesej ralat semasa pertanyaan PDO.

Kegagalan Pertanyaan Tanpa Mesej Ralat

Apabila pertanyaan PDO gagal, mesej ralat mungkin tidak kelihatan serta-merta. Untuk mendayakan keterlihatan ralat, anda mesti menetapkan mod ralat PDO kepada PDO::ERRMODE_EXCEPTION. Pengecualian memberikan jejak tindanan dan boleh dikendalikan menggunakan blok try..catch.

Contoh:

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

Memaparkan Ralat

Selain itu, tetapan pelaporan ralat mesti dikonfigurasikan untuk memaparkan ralat. Untuk tapak langsung, dayakan pengelogan ralat, manakala untuk pembangunan tempatan, ralat boleh dipaparkan pada skrin:

Laman Langsung:

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

Pembangunan Tempatan:

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

Elakkan Ralat Penindasan

Jangan sekali-kali menggunakan operator penindasan ralat (@) sebelum pernyataan PDO.

Mengelakkan percubaan yang tidak perlu..tangkap Blok

Pengecualian yang tidak ditangkap menyediakan maklumat ralat yang berharga tanpa memerlukan pengendalian ralat tersuai. Hanya gunakan try..catch apabila mengendalikan ralat, seperti melancarkan transaksi.

Atas ialah kandungan terperinci Mengapa Pertanyaan PDO Saya Tidak Menunjukkan Mesej Ralat?. 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