El problema es que está intentando conectarse a la base de datos ANTES usted establece el atributo silencioso. Entonces, durante el intento de conexión, PDO aún puede gritar tan fuerte como quiera. Debe especificar silencioso como parte del intento de conexión:
$dbh = new PDO($[..snip..], array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT));
^^^^^^^^^^^