Ну конкретно этот кривоват, и не реализует все возможности PDO.
Навскидку:
- exit('Error connecting to database: ' . $e->getMessage()); - это позор
- self::$sth - бессмыслица
- function getAll - делает обрезание оригинальному методу ПДО, который умеет возвращать данные в десятках различных форматов
- function getValue - стыд, автор не знает что в ПДО есть готовая функция для этого.
Если говорить о таких вот одностраничниках, то я бы рекомендовал попытаться напистаь своё.
Но судя по всему, это для тебя задача неподъемная.
В таком случае, на твоем месте я сначала поучился работать с ванильным PDO. Это реально важно. Это надо обязательно сделать перед тем как начинать использовать всякие обертки. чтобы понимать хотя бы примерно что они там внутри себя делают. А после этого все-таки писал бы свой класс.
В крайнем случае, ограничился бы функцией-хелпером:
function pdo($pdo, $sql, $args = NULL)
{
$stmt = $pdo->prepare($sql);
$stmt->execute($args);
return $stmt;
}
Ключевое слово здесь -
return $stmt;
. Оно позволяет работать с результатом запроса.
// узнать количество строк
$count = pdo($pdo, "SELECT count(*) FROM users WHERE role=?",[$role])->fetchColumn();
// получить юзера по адресу
$user = pdo($pdo, "SELECT * FROM users WHERE email=?", [$email])->fetch();
// тупо запросить массив строк
$data = pdo($pdo, "SELECT * FROM users WHERE salary > ?", [$salary])->fetchAll();
// получить количество удаленных строк
$deleted = pdo($pdo, "DELETE FROM users WHERE id=?", [$id])->rowCount();
// вставка
pdo($pdo, "INSERT INTO users VALUES (null, ?,?,?)", [$name, $email, $password]);
// получить массив строк в виде ключ-значение
$indexed = pdo($pdo, "SELECT id, name FROM users")->fetchAll(PDO::FETCH_KEY_PAIR);
Если же хочется чтобы прям как у больших пацанов, но не такое зубодробительно сложное, то
https://github.com/auraphp/Aura.Sql