phico / query
轻量级的 SQL 查询构建器,专为 Phico 设计
dev-main
2024-08-01 14:59 UTC
Requires
- php: ^8.0
Requires (Dev)
- pestphp/pest: ^2.34
- phpstan/phpstan: *
This package is auto-updated.
Last update: 2024-10-01 15:18:20 UTC
README
轻量级的 SQL 查询构建器,专为与 Phico 一起使用而设计。
查询没有依赖项,可以导入任何项目,它生成支持 MySQL、PostgreSQL 和 SQLite 的纯 SQL。
安装
使用 composer
composer require pico-php/query
使用方法
这是一个早期版本,文档可能不是最新的,但它大致遵循 Laravel Eloquent 或早期项目 indgy/phluent,请参考 Phluent 文档,但请注意,存在一些细微的差异,特别是参数的顺序是固定的,现在我们可以使用命名参数,这减少了问题,但意味着方法签名与 Eloquent/Phluent 不兼容。
注意:必须在调用 getParams() 之前调用 toSql(),因为在创建 SQL 的过程中收集参数。
$query = query('sqlite')->from('users')->toSql(); // SELECT * from users $query = query('sqlite')->select('name, email')->from('users')->toSql(); // SELECT name, email from users // the order of the chain is not that important* $query = query('sqlite')->from('users')->select('name, email')->toSql(); // SELECT name, email from users // mysql and postgresql are supported $query = query('mysql'); $query = query('pgsql'); // select accepts arrays of expressions or a raw string $query->select(['name', 'email']); // some aggregates are supported, count(), avg(), min(), max(), sum() $query->from('users')->count(); // SELECT COUNT(*) AS count FROM users // specify the column/expression to count as the first argument $query->from('users')->count('id'); // SELECT COUNT(id) AS count FROM users // specify the result variable name as the second argument $query->from('users')->count('id', 'c'); // SELECT COUNT(id) AS c FROM users // use getParams() to return the query parameter values as an array $query->getParams(); [ ... ]
*直到它变得
问题
这仍然处于开发中,并且一些功能将在我需要它们之前缺失。
如果您发现任何与行为或性能相关的问题或错误,请创建一个问题,如果您能够提供一个包含修复的拉取请求将非常有帮助。
请确保根据需要更新测试。
对于重大更改,请首先打开一个问题以讨论您想要更改的内容。