@DVP88

Последовательность методов при использовании метода chaining?

Приветствую, прошу помощи в понимании chaining method`a. Мне важно понять, как реализовать удобную последовательность запроса, например:
Разработка класса для работы с базой данных. На выходе хотим иметь возможность использования примерно такого формата:
$db->table('tableName')->select(...........)->where(........)->fetch('assoc');

На месте select соответственно могут быть update, insert, delete
Но тут проблема в том, что WHERE и FETCH являются частью запроса SELECT, поэтому я не могу выполнить его во время вызова метода select с объектом класса, мне нужно выполнять это позже, но КАК?
Я рассматриваю возможность записи целостного запроса в глобальную переменную класса (напр. $query), но как выполнить весь этот запрос по итогу? Можно было бы создать метод run(), который бы выполнял $query
$db->table('tableName')->select(...........)->where(........)->fetch('assoc')->run();

Однако это полный абсурд и я считаю, что есть более правильный выход, на который мне пока не хватило ума
  • Вопрос задан
  • 161 просмотр
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Как самый простой вариант - select только готовит строку запроса, where, groupBy и т.д. добавляют в неё свои подстроки, а уже fetch делает реальный запрос в базу и возвращает результат.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы