kekos / query-builder
小型 SQL 查询构建器
v2.0.1
2018-10-12 18:11 UTC
Requires
- php: >= 7.1.0
Requires (Dev)
- phpstan/phpstan: ^0.10.3
- phpstan/phpstan-phpunit: ^0.10.0
- phpunit/phpunit: ^7.3
README
这是 Muhammad Usman 的 Pixie(一个轻量级 PHP 查询构建器)的分支,该库只支持 Pixie 的一部分功能。
- 嵌套条件(用于连接的 WHERE、HAVING 和 ON)
- 原始查询
查询构建器无法打开数据库连接或执行构建的查询。
安装
您可以通过 Composer 安装 Query Builder。
composer require kekos/query-builder
API
首先使用适配器配置 Query Builder
QueryBuilder::setAdapter(new MySqlAdapter());
适配器设置正确的净化字符。目前,库中提供了 MySqlAdapter
。
所有构建器都有一个 toSql()
方法,该方法返回 SQL 查询以及所有要绑定到查询的参数,用于预处理语句。
选择
$result = QueryBuilder::select(['user', 'u']) ->columns(['u.id', 'uname' => 'username']) ->join(['user_permission', 'p'], QB::raw('p.user_id = u.id')) ->limit(5, 0) ->groupby(['u.id']) ->orderby(['username ASC', 'firstname ASC']) ->where('firstname', '=', 'Christoffer') ->whereNot('u.id', 'IN', array(2)) ->toSql();
$result
将是一个类型为 QueryBuilder\QueryBuilders\Raw
的对象。
嵌套的 where
或 having
$result = QueryBuilder::select('user') ->orderby('id') ->where(function($qb) { $qb->where('name', 'LIKE', '%chris%') ->whereOr('username', 'LIKE', '%chris%'); }) ->where('active', '=', 1) ->toSql();
插入
$result = QueryBuilder::insert('user') ->values([ 'username' => 'Kekos', 'firstname' => 'Christoffer' ]) ->toSql();
更新
$result = QueryBuilder::update('user') ->set([ 'username' => 'new_username', 'firstname' => 'New firstname' ]) ->where('id', '=', 2) ->toSql();
删除
$result = QueryBuilder::delete('user') ->where('id', '=', 2) ->toSql();
错误和改进
在 GitHub 问题中报告错误,或者随意发起 pull request :-)
许可证
MIT