Problem polega na tym, że próbujesz połączyć się z bazą danych PRZED ustawiasz cichy atrybut. Tak więc podczas próby połączenia PDO nadal może krzyczeć tak głośno, jak chce. Musisz określić cichy jako część samej próby połączenia:
$dbh = new PDO($[..snip..], array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT));
^^^^^^^^^^^