Где ты это ужас взял?
По виду код из моей статьи, но кто-то его изуродовал.
ERRMODE должно быть PDO::ERRMODE_EXCEPTION
в DSN не надо писать отсебятину. что такое $dbname?!
try catch надо выкинуть
var_dump($sth) вернёт не то что ты думаешь
надо добавить charset, чтобы потом снова не бегать с вопросами "ой у миня кракозябры"
<?php
$host = 'localhost';
$user = 'root';
$password = 'root';
$db_name = 'db_des';
$charset = 'utf8mb4';
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => true,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
];
$pdo = new PDO("mysql:host=$host;dbname=$db_name;charset=$charset", $user, $password, $options);
$sth = $pdo->query('SELECT * FROM `pages`');
var_dump($sth->fetchAll());