O problema é que você está tentando se conectar ao banco de dados ANTES você define o atributo silencioso. Assim, durante a tentativa de conexão, o PDO ainda está livre para gritar o quanto quiser. Você precisa especificar silencioso como parte da tentativa de conexão em si:
$dbh = new PDO($[..snip..], array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT));
^^^^^^^^^^^