phico/query

轻量级的 SQL 查询构建器,专为 Phico 设计

dev-main 2024-08-01 14:59 UTC

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();
[ ... ]

*直到它变得

问题

这仍然处于开发中,并且一些功能将在我需要它们之前缺失。

如果您发现任何与行为或性能相关的问题或错误,请创建一个问题,如果您能够提供一个包含修复的拉取请求将非常有帮助。

请确保根据需要更新测试。

对于重大更改,请首先打开一个问题以讨论您想要更改的内容。

许可证

BSD-3-Clause