los / uql
将URL查询转换为数据库部分查询的PHP库
1.2.0
2023-09-19 17:34 UTC
Requires
- php: ^8.1
- psr/http-message: ^1.0 || ^2.0
Requires (Dev)
- doctrine/coding-standard: ^12.0
- laminas/laminas-db: ^2.9
- laminas/laminas-diactoros: ^3.2
- php-coveralls/php-coveralls: ^2.6
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.3
- squizlabs/php_codesniffer: ^3.7
README
此库利用URL查询参数并生成数据库查询。
目前,它提供了以下集成:
计划中
安装
composer require los/uql
用法
构建器使用查询参数'q'进行查询,'h'用于提示(排序、排序、限制等)。您可以在构造函数中更改这些参数。
$builder = new ZendDbBuilder($select, 'query', 'hint');
构建器方法返回的Select实例是从构造函数中传入的实例的克隆。
Zend DB
直接传递请求
public function handle(ServerRequestInterface $request): ResponseInterface { $select = new \Laminas\Db\Select('table'); $select = (new ZendDbBuilder($select))->fromRequest($request); $statement = $sql->prepareStatementForSqlObject($select); $results = $statement->execute(); }
或手动传递参数
public function handle(ServerRequestInterface $request): ResponseInterface { $queryParams = $request->getQueryParams(); $query = $queryParams['q'] ?? []; $hint = $queryParams['h'] ?? []; $select = new \Laminas\Db\Select('table'); $select = (new ZendDbBuilder($select))->fromParams($query, $hint); $statement = $sql->prepareStatementForSqlObject($select); $results = $statement->execute(); }
示例
您可以混合和嵌套查询