Das Problem ist, dass Sie VORHER versuchen, eine Verbindung zur Datenbank herzustellen Sie setzen das Silent-Attribut. Während des Verbindungsversuchs kann PDO also immer noch so laut schreien, wie es will. Sie müssen Silent als Teil des Verbindungsversuchs selbst angeben:
$dbh = new PDO($[..snip..], array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT));
^^^^^^^^^^^