Задать вопрос
@aopil

Класс для работы с PDO?

Ищу самый популярный Class обертку для работы с PDO, нашел такое: ссылка

Актуально еще использовать его? Или подскажите нормальный плиз.
Версия php 5.6
  • Вопрос задан
  • 223 просмотра
Подписаться 1 Простой 8 комментариев
Решения вопроса 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
Ну конкретно этот кривоват, и не реализует все возможности 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
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы