-
Notifications
You must be signed in to change notification settings - Fork 39
Db Query
Конструктор SQL запросов
Нет
Пример использования конструктора Select():
use \Bluz\Db\Query;
/* @var \Bluz\Db $db */
$builder = new Query\Select();
$builder->select('u.*', 'g.name AS groupName') // SELECT u.*, g.name AS groupName
->from('users', 'u') // FROM users AS u
->join('u', 'group', 'g', 'g.id = u.id') // LEFT JOIN group AS g ON g.id = u.id
->where('u.status = ?', 'active') // u.status = 'active'
->andWhere('u.address IS NULL') // AND u.address IS NULL
->andWhere('u.role IN (?)', ['user', 'moderator']); // AND u.role IN ('user', 'moderator')
->andWhere('g.id = ? OR g.id = ?', 1, 2) // AND (g.id = 1 OR g.id = 2)
->andWhere('u.name LIKE (?)', 'A%') // AND u.name LIKE 'A%'
->orderBy('u.name', 'ASC') // ORDER BY u.name ASC
->limit(10) // LIMIT 10 OFFSET 0Примеры: доступны в скелетоне в контроллере
/test/query
Список примесей trait по отношению к методам:
| select() | insert() | update() | delete()
select | x | | |
insert | | x | |
update | | | x |
delete | | | | x
from | x | | - | -
join | x | | - | -
where | x | | x | x
group | x | | |
having | x | | |
order | x | | | x
limit | x | | x | x
set | | x | x |
Следующие методы являются общими для всех конструкторов запросов:
-
execute()- сгенерировать и выполнить запрос -
getSql()- генерирует и возвращает SQL запрос -
getQuery()- генерирует и возвращает SQL запрос с подстановками, необходим для проверки результата -
setParam($key, $value, $type = \PDO::PARAM_STR)- устанавливает параметр для подстановки в запрос -
setParams(array $params, array $types = array())- устанавливает все параметры за раз (! вызов данного метода перетирает все параметры, которые были явно или неявно добавлены к запросу) -
getParam($key)- возвращает параметр из подстановки -
getParams()- возвращает все параметры из подстановки -
__toString()- вызываетgetSql()
Конструктор запросов SELECT содержит следующие методы:
-
select($field [, $field[, $field .. ]])- перечисляем параметры, которые будут подставлены вSELECT $field, .. FROM .. -
addSelect($field [, $field[, $field .. ]])- метод аналогичный описанному выше, но дополняетselectчасть, а не замещает -
getSelect()- возвращает текущие настройкиselect -
from($table, $alias)- подстановка в.. FROM $table AS $alias .. -
join($fromAlias, $table, $alias, $condition)- подстановка в.. JOIN $table AS $alias ON $condition .. leftJoin($fromAlias, $table, $alias, $condition)rightJoin($fromAlias, $table, $alias, $condition)innerJoin($fromAlias, $table, $alias, $condition)-
where($condition [,$value [, $value ... ]])- устанавливает параметрыWHERE -
andWhere($condition [,$value [, $value ... ]])- добавляет условие вWHEREчерезAND -
orWhere($condition [,$value [, $value ... ]])- добавляет условие вWHEREчерезOR -
orderBy($field, $order = 'ASC')- устанавливает сортировку (перетирает предыдущую) -
addOrderBy($field, $order = 'ASC')- добавляет правило сортировки -
groupBy($field)- устанавливает группировку (перетирает предыдущую) -
addGroupBy($field)- добавляет группировку -
limit($limit, $offset = 0)- обёртка для формированияLIMIT 100 OFFSET 200 setLimit($limit)setOffset($offset)-
setPage($page)- обёртка для формированияLIMIT 100 OFFSET 200, для использования должен быть установлено ограничение с использованиемsetLimit($limit) -
havingBy($condition [,$value [, $value ... ]])- обёртка для формированияHAVING andHavingBy($condition [,$value [, $value ... ]])orHavingBy($condition [,$value [, $value ... ]])-
setFetchType($type)- установка формата возвращаемых данных, может быть\PDO::FETCH_CLASS,\PDO::FETCH_ASSOCили имя класса, к примеру\Application\Pages\Row, по умолчанию:\PDO::FETCH_ASSOC
Комплексный пример вы найдёте чуть выше.
Конструктор запросов INSERT, содержит следующие методы:
insert($table)set($key, $value)
Конструктор запросов UPDATE, содержит следующие методы:
update($table)set($key, $value)-
where($condition [,$value [, $value ... ]])- устанавливает параметрыWHERE -
andWhere($condition [,$value [, $value ... ]])- добавляет условие черезAND -
orWhere($condition [,$value [, $value ... ]])- добавляет условие черезOR -
limit($limit, $offset = 0)- обёртка для формированияLIMIT 100 OFFSET 200 setLimit($limit)setOffset($offset)
Конструктор запросов DELETE, содержит следующие методы:
delete($table)-
where($condition [,$value [, $value ... ]])- устанавливает параметрыWHERE -
andWhere($condition [,$value [, $value ... ]])- добавляет условие черезAND -
orWhere($condition [,$value [, $value ... ]])- добавляет условие черезOR -
limit($limit, $offset = 0)- обёртка для формированияLIMIT 100 setLimit($limit)-
setOffset($offset)- рудимент, в формировании запроса не участвует
Acl
Application
Auth
Cache
Common
— Exception
— Collection
— Container
— Helper
— Options
— Singleton
Config
Controller
— Data
— Mapper
—— Crud
—— Rest
— Reflection
Crud
— Crud Table
Db
— Row
— Table
— Relations
— Query
Debug
EventManager
Grid
Http
Layout
Logger
Mailer
Messages
Nil
Proxy
Registry
Request
Response
Router
Session
Translator
Validator
View