完全独立,表达式的SQL查询创建器。无需数据库或ORM。

v1.3.0 2015-07-26 09:26 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:31:27 UTC


README

完全独立,表达式的SQL查询创建器。无需数据库或ORM。

Build Status Coverage Status

Latest Stable Version Total Downloads License

特性

  • 无需数据库连接,完全独立
  • 按顺序返回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 来编写自己的方言。

用户指南

查看Wiki

(或仓库中的/docs文件夹)

API文档

从这个项目的检出中运行

$ make

这将为您创建一个api/文件夹以供浏览。

PHP需求

  • PHP >= 5.4

作者

Alex Gisby: GitHub, Twitter

许可

MIT

贡献

贡献者说明