Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Ralat SQL daripada Penyata Disediakan PDO dalam PHP?

Bagaimana untuk Mendapatkan Ralat SQL daripada Penyata Disediakan PDO dalam PHP?

Barbara Streisand
Lepaskan: 2024-12-15 20:47:17
asal
831 orang telah melayarinya

How to Retrieve SQL Errors from PDO Prepared Statements in 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);
Salin selepas log masuk

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

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

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

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!

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