Masalahnya adalah Anda mencoba menyambung ke database SEBELUM Anda mengatur atribut silent. Jadi selama upaya koneksi, PDO masih bebas berteriak sekeras yang diinginkan. Anda perlu menentukan silent sebagai bagian dari upaya koneksi itu sendiri:
$dbh = new PDO($[..snip..], array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT));
^^^^^^^^^^^