-
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