solution10 / sql
完全独立,表达式的SQL查询创建器。无需数据库或ORM。
v1.3.0
2015-07-26 09:26 UTC
Requires
- php: >= 5.4
Requires (Dev)
- solution10/devkit: ~1.0
This package is not auto-updated.
Last update: 2024-09-14 18:31:27 UTC
README
完全独立,表达式的SQL查询创建器。无需数据库或ORM。
特性
- 无需数据库连接,完全独立
- 按顺序返回SQL字符串和参数以进行PDO查询
- 支持MySQL和ANSI SQL变体
- 复杂查询(嵌套WHERE,HAVING等)
- 简单、表达式的语法
- 可以在任何点返回查询部分
安装
安装通过composer进行,按照常规方式
{ "require": { "solution10/sql": "~1.0" } }
文档
简单示例
如需更多详细文档,请检查仓库中的/docs文件夹或Wiki。
选择
$query = (new Solution10\SQL\Select()) ->select(['users.name', 'locations.name']) ->from('users') ->join('locations', 'users.location_id', '=', 'locations.id') ->where('users.id', '>', 15) ->limit(25) ->offset(10) ->orderBy('name', 'DESC'); // Make use of an existing PDO object to actually run the query: $stmt = $pdo->prepare((string)$query); $stmt->execute($query->params()); $rows = $stmt->fetchAll();
插入
$query = (new Solution10\SQL\Insert()) ->table('users') ->values([ 'name' => 'Alex', 'location_id' => 27 ]); // Use with PDO in exactly the same way as SELECT: $stmt = $pdo->prepare((string)$query); $stmt->execute($query->params());
更新
$query = (new Solution10\SQL\Update()) ->table('users') ->where('id', '=', 15) ->values([ 'name' => 'Alex', 'location_id' => 27 ]); // Use with PDO in exactly the same way as SELECT: $stmt = $pdo->prepare((string)$query); $stmt->execute($query->params());
删除
$query = (new Solution10\SQL\Delete()) ->table('users') ->where('id', '=', 27) ->limit(1); // Use with PDO in exactly the same way as SELECT: $stmt = $pdo->prepare((string)$query); $stmt->execute($query->params());
使用其他方言
默认情况下,S10\SQL将假设您正在使用兼容ANSI SQL的数据库。如果您使用的是其他数据库,例如MySQL,只需将Dialect实例传递给构造函数即可
$query = (new Solution10\SQL\Select(new Solution10\SQL\Dialect\MySQL())) ->select('*') ->from('users') ->limit(10);
您也可以通过实现 Solution10\SQL\DialectInterface
来编写自己的方言。
用户指南
(或仓库中的/docs文件夹)
API文档
从这个项目的检出中运行
$ make
这将为您创建一个api/文件夹以供浏览。
PHP需求
- PHP >= 5.4