PHPackages                             sqrt-pro/query-builder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. sqrt-pro/query-builder

ActiveLibrary[Framework](/categories/framework)

sqrt-pro/query-builder
======================

Query Builder is a part of SQRT Framework

v0.1.0(11y ago)21.6k1MITPHPPHP &gt;=5.3.0

Since Mar 24Pushed 11y ago2 watchersCompare

[ Source](https://github.com/sqrt-pro/QueryBuilder)[ Packagist](https://packagist.org/packages/sqrt-pro/query-builder)[ Docs](http://fw.sqrt.pro)[ RSS](/packages/sqrt-pro-query-builder/feed)WikiDiscussions master Synced 6d ago

READMEChangelogDependencies (1)Versions (2)Used By (1)

QueryBuilder
============

[](#querybuilder)

[![Build Status](https://camo.githubusercontent.com/617747ba51239a228d74af168236c8ef1f919aedfb43452b8809935877a81853/68747470733a2f2f7472617669732d63692e6f72672f737172742d70726f2f51756572794275696c6465722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/sqrt-pro/QueryBuilder)[![Coverage Status](https://camo.githubusercontent.com/99c9972e0cad697a2fdbcdb1a810712277ec3be7559599c6ad13a3c8bacb9219/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f737172742d70726f2f51756572794275696c6465722f62616467652e7376673f6272616e63683d6d6173746572)](https://coveralls.io/r/sqrt-pro/QueryBuilder?branch=master)[![Latest Stable Version](https://camo.githubusercontent.com/8860b3e380ef5a10bdcc599bb5bfb6f702104c217656546f08b716070d9f68da/68747470733a2f2f706f7365722e707567782e6f72672f737172742d70726f2f71756572792d6275696c6465722f762f737461626c652e737667)](https://packagist.org/packages/sqrt-pro/query-builder)[![License](https://camo.githubusercontent.com/ae3ee205def30bc32d40b9aa8205e68fcbb6af72e9ab5d71078becc84a6f7a90/68747470733a2f2f706f7365722e707567782e6f72672f737172742d70726f2f71756572792d6275696c6465722f6c6963656e73652e737667)](https://packagist.org/packages/sqrt-pro/query-builder)

Библиотека для построения SQL запросов SELECT, UPDATE, INSERT, DELETE.

Создание запросов начинается с создания объекта QueryBuilder. Можно сразу задать общий префикс для таблиц в БД:

```
    $qb = new \SQRT\QueryBuilder('awesome_');

```

После этого можно создавать объекты запросов, комбинируя в любой последовательности необходимые методы для настройки запроса:

**Важно:** вызовы `where()`, `having()` добавляют условия "в стек". Чтобы стереть ранее добавленные условия нужно вызвать метод, явно указав NULL: `where(null)`

SELECT
------

[](#select)

```
    $q = $qb->select('pages p')
      ->join('news n', 'p.id = n.parent_id', 'LEFT')
      ->columns('p.id', 'p.name', 'COUNT(n.id) AS news')
      ->where(array('n.is_active' => 1, 'p.status IS NOT NULL', 'age > :age'))
      ->bind('age', 50)
      ->groupby('p.id')
      ->having(array('news' => 10, 'SUM(`age`) >= :age'))
      ->orderby('p.id', 'news')
      ->limit(10);

```

DELETE
------

[](#delete)

```
    $q = $qb->delete('pages')
      ->where(array('is_active' => 1, 'p.status IS NOT NULL', 'age > :age'))
      ->bind('age', 50)
      ->orderby('id')
      ->limit(10);

```

UPDATE
------

[](#update)

```
    $q = $qb->update('pages')
      ->setEqual('one', 1)
      ->setExpr('`weight` = `one` + :add')
      ->bind('add', 'hundred tons')
      ->where(array('name' => 'John', 'visited_at
