Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Построитель запросов в Yii 2

Построитель запросов

Построенный поверх DAO, построитель запросов позволяет конструировать SQL выражения в программируемом и независимом от СУБД виде. В сравнении с написанием чистого SQL выражения, использование построителя помогает вам писать более читаемый связанный с SQL код и генерировать более безопасные SQL выражения.



Использование построителя запросов, как правило, включает два этапа:

  1. Создание объекта [[yii\db\Query]] представляющего различные части (такие как SELECT, FROM) SQL выражения SELECT.
  2. Выполнить запрос методом [[yii\db\Query]] (таким как all()) для извлечения данных из базы данных.

Следующий код показывает обычное использование построителя запросов:

$rows = (new \yii\db\Query())
    ->select(['id', 'email'])
    ->from('user')
    ->where(['last_name' => 'Smith'])
    ->limit(10)
    ->all();

Приведённый выше код создаёт и выполняет следующее SQL выражение, где параметр :last_name привязывается к строке 'Smith'.

SELECT `id`, `email` 
FROM `user`
WHERE `last_name` = :last_name
LIMIT 10

Info: В основном вы будете работать с [[yii\db\Query]] вместо [[yii\db\QueryBuilder]]. Последний вызывается неявно при вызове одного из методов запроса. [[yii\db\QueryBuilder]] это класс, отвечающий за генерацию зависимого от СУБД SQL выражения (такие как экранирование имён таблиц/столбцов) из независимых от СУБД объектов [[yii\db\Query]].

  • Построение запросов
    • [[yii\db\Query::select()|select()]]
    • [[yii\db\Query::from()|from()]]
      • Префиксы
    • [[yii\db\Query::where()|where()]]
      • Строковый формат
      • Формат массива
      • Формат операторов
      • Добавление условий
      • Условия для фильтров
    • [[yii\db\Query::orderBy()|orderBy()]]
    • [[yii\db\Query::groupBy()|groupBy()]]
    • [[yii\db\Query::having()|having()]]
    • [[yii\db\Query::limit()|limit()]] и [[yii\db\Query::offset()|offset()]]
    • [[yii\db\Query::join()|join()]]
    • [[yii\db\Query::union()|union()]]
  • Методы выборки
    • Индексация результатов запроса
    • Пакетная выборка

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )


Обсудить эту статью

INFO: Вы отправляете сообщение как 'Гость'