Проблемът е, че се опитвате да се свържете с базата данни ПРЕДИ задавате атрибута Silent. Така че по време на опита за свързване, PDO все още е свободен да крещи толкова силно, колкото иска. Трябва да посочите тихо като част от самия опит за свързване:
$dbh = new PDO($[..snip..], array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT));
^^^^^^^^^^^