Gebruik PDO's errorinfo()
functie
om erachter te komen waarom.
if( ! $sth = $db->query("SELECT * FROM titles ORDER BY RAND() LIMIT 1") ) {
die(var_export($db->errorinfo(), TRUE));
}
Late update
In het belang van het verbeteren van mijn oude antwoorden, is het veel gemakkelijker om PDO in te stellen om uitzonderingen op fouten te genereren dan het controleren van elke functieretour.
$dbh = new PDO($connstr, $user, $pwd);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Of, beknopter:
$dbh = new PDO($connstr, $user, $pwd, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);