Het probleem is dat je probeert verbinding te maken met de database VOOR u stelt het stille attribuut in. Dus tijdens de verbindingspoging is PDO nog steeds vrij om zo hard te schreeuwen als hij wil. U moet stil opgeven als onderdeel van de verbindingspoging zelf:
$dbh = new PDO($[..snip..], array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT));
^^^^^^^^^^^