C'est ce que PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
est pour. Utilisez-le comme ceci :
$pdo = new PDO(
'mysql:host=localhost;port=3306;dbname=mydb;charset=utf8'
, 'user'
, 'pass'
, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ]
);
Lorsqu'elles sont utilisées de cette manière, les erreurs sont en fait levées en tant qu'exceptions. Cela signifie que si une erreur se produit avec fetch (ou d'autres méthodes utilisant cet objet pdo), une exception sera levée et la méthode ne reviendra pas du tout. C'est un moyen très efficace de gérer les erreurs dans PDO. Vous savez maintenant que si fetch renvoie une valeur, aucune erreur ne s'est produite et que, par conséquent, si elle est fausse, la requête n'a renvoyé aucun enregistrement.