PHP code example of everon / criteria-builder
1. Go to this page and download the library: Download everon/criteria-builder library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
everon / criteria-builder example snippets
$sth = $dbh->prepare($SqlPart->getSql());
$sth->execute($SqlPart->getParameters());
$CriteriaBuilder
->where('id', '=', 123)
$CriteriaBuilder
->where('id', 'IN', [1,2,3])
->orWhere('id', 'NOT IN', [4,5,6])
->andWhere('name', '=', 'foo');
->where('modified', 'IS', null)
->andWhere('name', '!=', null)
->orWhere('id', '=', 55);
$CriteriaBuilder
->where('id', 'IN', [1,2,3])
->orWhere('id', 'NOT IN', [4,5,6])
->andWhere('name', '=', 'foo');
->glueByOr()
->where('modified', 'IS', null)
->andWhere('name', '!=', null)
->orWhere('id', '=', 55);
$CriteriaBuilder
->whereRaw('foo + bar')
->andWhereRaw('1=1')
->orWhereRaw('foo::bar()');
$CriteriaBuilder
->where('name', '!=', 'foo')
->andWhere('id', '=', 123)
->setGroupBy('name,id');
$CriteriaBuilder
->whereRaw('foo + bar')
->andWhereRaw('1=1')
->orWhereRaw('foo::bar()');
->setLimit(10)
->setOffset(5);
$CriteriaBuilder
->whereRaw('foo + bar')
->andWhereRaw('1=1')
->orWhereRaw('foo::bar()')
->setOrderBy([
'name' => 'DESC',
'id' => 'ASC'
]);
$CriteriaBuilder
->where('id', 'IN', [1,2,3])
->orWhere('id', 'NOT IN', [4,5,6])
->glueByOr()
->where('name', '!=', 'foo')
->andWhere('email', '!=', 'foo@bar')
->glueByAnd()
->where('bar', '=', 'bar')
->andWhere('name', '=', 'Doe');
$CriteriaBuilder->setLimit(10);
$CriteriaBuilder->setOffset(5);
$CriteriaBuilder->setGroupBy('name,id');
$CriteriaBuilder->setOrderBy(['name' => 'DESC', 'id' => 'ASC']);
$CriteriaBuilder->where('foo', '=', 'bar');
$CriteriaBuilder->where('foo', 'NOT IN', ['bar', 'buzz']);
$CriteriaBuilder->where('foo', 'BETWEEN', ['bar', 'buzz']);
/**
* @param $sql_type
* @param $operator_class_name
*
* @return void
*/
public static function registerOperator($sql_type, $operator_class_name);
class OperatorCustomTypeStub extends AbstractOperator
{
const TYPE_NAME = 'CustomType';
const TYPE_AS_SQL = '<sql for custom operator>';
}
Builder::registerOperator(OperatorCustomTypeStub::TYPE_AS_SQL, 'Some\Namespace\OperatorCustomTypeStub');
$CriteriaBuilder->whereRaw('bar', null, OperatorCustomTypeStub::TYPE_AS_SQL);
$CriteriaBuilder->andWhereRaw('foo', ['foo' => 'bar'], OperatorCustomTypeStub::TYPE_AS_SQL);
$CriteriaBuilder->orWhereRaw('foo', 'bar', OperatorCustomTypeStub::TYPE_AS_SQL);
use Everon\Component\CriteriaBuilder\CriteriaBuilderFactoryWorkerInterface;
use Everon\Component\Factory\Dependency\Container;
use Everon\Component\Factory\Factory;
eturn $Factory->buildWorker(CriteriaBuilderFactoryWorker::class);
});
$CriteriaBuilderFactoryWorker = $Factory->getWorkerByName('CriteriaBuilderFactoryWorker');
$CriteriaBuilder = $CriteriaBuilderFactoryWorker->buildCriteriaBuilder();
$CriteriaBuilder
->where('sku', 'LIKE', '13%')
->orWhere('id', 'IN', [1, 2, 3])
->glueByOr()
->where('created_at', '>', '2015-12-03 12:27:22');
$sql = 'SELECT * FROM <TABLE>';
$sql = $sql . (string) $CriteriaBuilder;
$sth = $dbh->prepare($sql);
$dbh = new \PDO('mysql:host=127.0.0.1;dbname=DATABASE', 'root', '');
$SqlPart = $CriteriaBuilder->toSqlPart();
$sth = $dbh->prepare($SqlPart->getSql());
$sth->execute($SqlPart->getParameters());
$dbh = new \PDO('mysql:host=127.0.0.1;dbname=DATABASE', 'root', '');
$CriteriaBuilder
->sql('SELECT * FROM fooTable f LEFT JOIN barTable b ON f.bar_id = b.id AND f.is_active = :is_active')
->where('bar', '=', 1)
->andWhere('foo', 'NOT IN', [1,2,3])
->orWhereRaw('foo::bar() IS NULL')
->setParameter('is_active', false)
->setLimit(10)
->setOffset(20)
->setOrderBy(['foo' => 'DESC']);
$SqlPart = $CriteriaBuilder->toSqlPart();
$sth = $dbh->prepare($SqlPart->getSql());
$sth->execute($SqlPart->getParameters());
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
OR