Sử dụng errorinfo()
của PDO chức năng
để tìm hiểu lý do.
if( ! $sth = $db->query("SELECT * FROM titles ORDER BY RAND() LIMIT 1") ) {
die(var_export($db->errorinfo(), TRUE));
}
Cập nhật muộn
Vì lợi ích của việc làm cho các câu trả lời cũ của tôi trở nên tốt hơn, việc đặt PDO để đưa ra các ngoại lệ cho lỗi dễ quản lý hơn nhiều so với việc kiểm tra mọi hàm trả về.
$dbh = new PDO($connstr, $user, $pwd);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Hay, ngắn gọn hơn:
$dbh = new PDO($connstr, $user, $pwd, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);