Mengekstrak Mesej Ralat daripada PDO
Apabila cuba mendapatkan mesej ralat daripada pengecualian PDO, ia boleh mengecewakan untuk menemui hasil yang kosong. Soalan ini menyelidiki isu asas dan menyediakan penyelesaian kepada masalah ini.
Walaupun menetapkan mod ralat kepada amaran, pernyataan PDO dan maklumat ralatnya mengembalikan tatasusunan kosong. Isu ini berpunca daripada fakta bahawa setAttribute mempengaruhi tingkah laku PDO semasa pelaksanaan pertanyaan, bukan semasa penyediaan pernyataan.
Dalam kes kenyataan yang disediakan yang dicontohi, fungsi prepare() tidak berinteraksi dengan pelayan pangkalan data, menyebabkan tiada pemeriksaan ralat. Walau bagaimanapun, apabila menggunakan pernyataan yang disediakan asli, seperti yang disokong oleh MySQL sejak versi 4.1, menetapkan mod ralat kepada pengecualian harus mencetuskan pengecualian semasa pelaksanaan pertanyaan.
Untuk mencapai ini, gunakan kod berikut:
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Dengan menukar kepada pernyataan yang disediakan asli dan menetapkan mod ralat dengan betul, anda kini sepatutnya boleh mendapatkan mesej ralat bermaklumat daripada PDO anda pengecualian.
Atas ialah kandungan terperinci Mengapa Mesej Ralat PDO Saya Kosong?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!