juangamonal / sqb
此包最新版本(dev-master)没有可用的许可信息。
现代且简单的API,简化了在PDO上构建和执行SQL查询的过程。
dev-master
2021-07-07 02:10 UTC
Requires
- ext-pdo: *
Requires (Dev)
- phpunit/phpunit: ^8
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-09-07 08:49:01 UTC
README
Simple Query Builder (SQB) 是一个轻量级层,建立在 PDO 之上,提供简化SQL查询构建和执行的机制。它通过一个受其他类似库最佳实践启发的现代API来执行。
特性
- 兼容 PHP >=7.3。
- 在 MySql、Oracle 和 SQLite 上进行过测试。
- 可通过
Grammar
扩展。 - 事务管理。
安装
composer require juangamonal/sqb
注意:对于SQB的这个 alpha
版本,你需要在你的 composer.json
文件中指定 minimum-stability
属性为 dev
。
使用方法
use QueryBuilder\Builder; $pdo = new PDO('...'); $builder = new Builder($pdo);
QueryBuilder
实例允许你通过链式方法执行查询,例如
$builder->select('name as first_name', 'last_name', 'email') ->where('status = 1', 'age > 18') ->get(); # SELECT name AS first_name, last_name, email FROM users WHERE status = 1 AND age > 18 echo $builder->toSql(); // obteniendo resultados $users = $builder->select('id')->from('users')->get(); // insertando datos $builder->insert([ 'id' => 1, 'name' => 'Foo' ])->into('users'); // modificando datos $id = 1; $builder->update([ 'name' => 'Foo', 'email' => 'foo@bar.com' ])->where("id = {$id}")->execute(); // eliminado datos $builder->delete() ->from('users') ->where("name like %Foo") ->execute(); // transacciones (callback) $builder->transaction(function($b) { // operaciones... $b->insert(['id' => 1])->into('users'); $b->setTable('posts')->delete()->where('user.id = 1')->execute(); // más operaciones ... }); // transacciones (manual) try { $builder->beginTransaction(); // operaciones... $builder->insert(['id' => 1])->into('users'); $builder->setTable('posts')->delete()->where('user.id = 1')->execute(); // más operaciones ... $builder->commit(); } catch (\Exception $e) { $builder->rollback(); }
示例
TODO
- 原始查询。
- 子查询。
- 聚合。
感谢
- Chinook数据库(SQLite) 用于示例。