Mendapatkan Ralat Pertanyaan daripada prepare() dalam PDO PHP
Apabila menggunakan PDO PHP untuk menyediakan pertanyaan, adalah penting untuk menyemak sebarang potensi kesilapan. Secara lalai, PDO tidak membuang pengecualian untuk ralat yang dihadapi semasa penyediaan pertanyaan. Untuk mendayakan pengendalian ralat, anda boleh memanfaatkan atribut PDO::ATTR_ERRMODE.
Penyelesaian
Contoh:
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'localonly', 'localonly'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $pdo->prepare('INSERT INTO DoesNotExist (x) VALUES (?)');
Jika pertanyaan yang disediakan mengandungi sintaks yang tidak sah, PDO akan membuang pengecualian dengan maklumat berikut:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.doesnotexist' doesn't exist
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Ralat Pertanyaan PDO Prepare() dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!