Đó là lầm tưởng phổ biến nhất về gỡ lỗi SQL. "Tôi cần xem truy vấn sau khi chuẩn bị để có thể biết liệu có lỗi xảy ra hay không". Thực tế là bạn không và tôi sẽ cho bạn biết tại sao.
Khi truy vấn đã được chuẩn bị, trình giữ chỗ có thể được coi là chuỗi / số nguyên hợp lệ . Bạn không quan tâm đến những gì trong đó.
Ngoài ra, nếu bạn thiết lập PDO đúng cách, bạn sẽ nhận được PDOException
chi tiết nêu chi tiết lỗi bạn đã gặp phải cùng với dấu vết hoàn chỉnh về vị trí lỗi đã xảy ra, ngoài ra bạn nhận được chuỗi lỗi từ MySQL, điều này làm cho lỗi cú pháp rất dễ tìm thấy.
Để bật Ngoại lệ PDO và tắt chuẩn bị giả lập:
$pdo = new PDO("mysql:host=localhost;dbname=database_name", "user", "password");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);