dczech/fluentpdo

FluentPDO (pgsql) 是一个小型PHP库,用于快速构建查询。其杀手级特性是智能连接构建器,可以自动生成连接。

dev-master 2013-11-15 09:25 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:17:08 UTC


README

Build Status

FluentPDO - PHP的智能SQL构建器。

FluentPDO 是一个小型PHP库,用于快速构建查询。其杀手级特性是“智能连接构建器”,可以自动生成连接。

特性

  • 逐步创建查询的流畅接口
  • 智能连接构建器
  • 基于PDO和SQL语法的简单API
  • 构建SELECT、INSERT、UPDATE & DELETE查询
  • 小巧且快速
  • 在智能IDE中支持代码补全的类型提示
  • 需要PHP 5.1+和任何由PDO支持的数据库

安装

Composer

安装FluentPDO的首选方式是通过composer

在您的composer.json中添加以下内容

"require": {
	...
	"dczech/fluentpdo": "dev-pgsql"	
}

然后使用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);
if ($user_id) {
    $query = $query
            ->where('user_id', $user_id)
            ->select('user.name');        // this join table user
}
foreach ($query as $row) {
    echo "$row[name] - $row[title]\n";
}

执行查询如下

SELECT article.*, user.name
FROM article
        LEFT JOIN user ON user.id = article.user_id
WHERE published_at > ? AND user_id = ?
ORDER BY published_at DESC
LIMIT 5

完整文档可以在FluentPDO 主页上找到

简单查询示例

SELECT
$query = $fpdo->from('article')->orderBy('published_at DESC')->limit(5);
// or if you want to one row by primary key
$query = $fpdo->from('user', 2);
INSERT
$values = array('title' => 'article 1', 'content' => 'content 1');
$query = $fpdo->insertInto('article')->values($values);
// or shortly
$query = $fpdo->insertInto('article', $values);
UPDATE
$set = array('published_at' => new FluentLiteral('NOW()'));
$query = $fpdo->update('article')->set($set)->where('id', 1);
// or shortly
$query = $fpdo->update('article', $set, 'id', 1);
DELETE
$query = $fpdo->deleteFrom('article')->where('id', 1);
// or shortly
$query = $fpdo->deleteFrom('article', 'id', 1);

注意:INSERT、UPDATE和DELETE将在->execute()后执行

$fpdo->deleteFrom('article', 'id', 1)->execute();

完整文档可以在FluentPDO 主页上找到

许可证

免费用于商业和非商业用途(Apache LicenseGPL)。