Единственное неудобство PDO в том, что execute() не возвращает стейтмент. Это легко исправить, как показано в коде из ответа выше.
Получаем 2 строки:
$sql = "SELECT ...";
$data = DB::prepare($sql)->execute([$param1,$param2, ...])->fetch();
Вместо fetch() подставляем любой желаемый вариант получения данных.
Но можно, в общем, и свой враппер написать, попроще
function pdq($sql, $params = array())
{
global $pdo;
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
return $stmt;
}
$sql = "SELECT ...";
$data = pdq($sql, [$param1,$param2, ...])->fetch();
$pdo получать как написано здесь
phpfaq.ru/pdo#connect