usa prova cattura
try {
$pdo->exec ("QUERY WITH SYNTAX ERROR");
} catch (PDOException $e) {
if ($e->getCode() == '23000')
echo "Syntax Error: ".$e->getMessage();
}
Leggi PDOStatement::errorCode
tratto da Elenco codici di ritorno