Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Ralat SQL daripada Penyata Disediakan PDO dalam PHP?
Mengambil semula Ralat SQL dalam PDO/Sediakan dalam PHP
Untuk menyemak ralat yang disengajakan dalam pertanyaan MySQL menggunakan kaedah prepare() dalam PDO PHP, ikuti ini langkah:
1. Tetapkan Atribut Mod Ralat
Tetapkan atribut mod ralat kepada PDO::ERRMODE_EXCEPTION menggunakan kaedah setAttribute() untuk mendayakan pengendalian pengecualian. Ini akan menyebabkan kaedah penyediaan membuang pengecualian jika ralat berlaku:
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
2. Lumpuhkan Emulasi
Lumpuhkan PDO::ATTR_EMULATE_PREPARES dengan menetapkannya kepada palsu. Ini adalah perlu kerana pelayan MySQL mungkin tidak menilai pernyataan yang disediakan sehingga pelaksanaan, menjadikannya lebih sukar untuk mengesan ralat:
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
Contoh:
Kod berikut disediakan pertanyaan "PILIH * DARI c6ode" dan membuang pengecualian jika c6ode jadual tidak wujud:
try { $st = $db->prepare("SELECT * FROM c6ode"); } catch (PDOException $e) { // Handle the exception and display the error message }
Output Pengecualian:
Melaksanakan kod di atas (dengan c6ode tidak wujud) akan mencetak mesej pengecualian yang menunjukkan bahawa jadual tidak wujud:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.c6ode' doesn't exist
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Ralat SQL daripada Penyata Disediakan PDO dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!