advmaker / fluentpdo
FluentPDO 是一个小型 PHP 库,用于快速构建查询。其杀手级功能是智能连接构建器,可以自动生成连接。
1.1.0
2016-01-28 11:18 UTC
This package is auto-updated.
Last update: 2024-08-26 01:37:58 UTC
README
FluentPDO - PHP 的智能 SQL 构建器。
FluentPDO 是一个小型 PHP 库,用于快速构建查询。杀手级功能是“智能连接构建器”,可以自动生成连接。
功能
- 逐步创建查询的流畅接口
- 智能连接构建器
- 基于 PDO 和 SQL 语法的简单 API
- 构建 SELECT、INSERT、UPDATE & DELETE 查询
- 小巧快速
- 在智能 IDE 中支持代码提示的类型提示
- 需要 PHP 5.1+ 以及 PDO 支持的任何数据库
参考
安装
Composer
安装 FluentPDO 的首选方法是使用 composer。
在您的 composer.json
中添加
"require": {
...
"lichtner/fluentpdo": "dev-master"
}
然后使用 composer update
更新您的依赖项。
复制
如果您不熟悉 composer,只需将 /FluentPDO
目录复制到您的 libs/
目录中即可。
include "libs/FluentPDO/FluentPDO.php";
开始使用
$pdo = new PDO("mysql:dbname=fblog", "root"); $fpdo = new FluentPDO($pdo);
第一个示例
FluentPDO 使用简单
$query = $fpdo->from('article') ->where('published_at > ?', $date) ->orderBy('published_at DESC') ->limit(5); foreach ($query as $row) { echo "$row[title]\n"; }
执行的查询是
SELECT article.* FROM article WHERE published_at > ? ORDER BY published_at DESC LIMIT 5
智能连接构建器(如何构建查询)
如果您想连接表,可以使用完整的 SQL 连接语法。例如,我们想显示带有作者名称的文章列表
$query = $fpdo->from('article') ->leftJoin('user ON user.id = article.user_id') ->select('user.name');
这并不那么智能,对吧? ;-) 如果您的数据库使用主键和外键名称的约定,您可以只写
$query = $fpdo->from('article')->leftJoin('user')->select('user.name');
更智能吗?可能吧。但 编写连接的最佳实践是不要编写任何连接 ;)
$query = $fpdo->from('article')->select('user.name');
所有三个命令创建相同的查询
SELECT article.*, user.name FROM article LEFT JOIN user ON user.id = article.user_id
简单的 CRUD 查询示例
SELECT
$query = $fpdo->from('article')->where('id', 1); // or shortly if you select one row by primary key $query = $fpdo->from('user', 1);
INSERT
$values = array('title' => 'article 1', 'content' => 'content 1'); $query = $fpdo->insertInto('article')->values($values)->execute(); // or shortly $query = $fpdo->insertInto('article', $values)->execute();
UPDATE
$set = array('published_at' => new FluentLiteral('NOW()')); $query = $fpdo->update('article')->set($set)->where('id', 1)->execute(); // or shortly if you update one row by primary key $query = $fpdo->update('article', $set, 1)->execute();
DELETE
$query = $fpdo->deleteFrom('article')->where('id', 1)->execute(); // or shortly if you delete one row by primary key $query = $fpdo->deleteFrom('article', 1)->execute();
注意:INSERT、UPDATE 和 DELETE 将在 ->execute()
之后执行
完整文档可以在 FluentPDO 主页上找到 FluentPDO homepage
许可
免费用于商业和非商业用途(Apache License 或 GPL)。