此包最新版本(dev-master)没有可用的许可信息。

现代且简单的API,简化了在PDO上构建和执行SQL查询的过程。

dev-master 2021-07-07 02:10 UTC

This package is auto-updated.

Last update: 2024-09-07 08:49:01 UTC


README

Simple Query Builder (SQB) 是一个轻量级层,建立在 PDO 之上,提供简化SQL查询构建和执行的机制。它通过一个受其他类似库最佳实践启发的现代API来执行。

特性

  • 兼容 PHP >=7.3。
  • 在 MySql、Oracle 和 SQLite 上进行过测试。
  • 可通过 Grammar 扩展。
  • 事务管理。

安装

composer require juangamonal/sqb

注意:对于SQB的这个 alpha 版本,你需要在你的 composer.json 文件中指定 minimum-stability 属性为 dev

使用方法

use QueryBuilder\Builder;

$pdo = new PDO('...');
$builder = new Builder($pdo);

QueryBuilder 实例允许你通过链式方法执行查询,例如

$builder->select('name as first_name', 'last_name', 'email')
    ->where('status = 1', 'age > 18')
    ->get();

# SELECT name AS first_name, last_name, email FROM users WHERE status = 1 AND age > 18
echo $builder->toSql();

// obteniendo resultados
$users = $builder->select('id')->from('users')->get();

// insertando datos
$builder->insert([
    'id' => 1,
    'name' => 'Foo'
])->into('users');

// modificando datos
$id = 1;
$builder->update([
    'name' => 'Foo',
    'email' => 'foo@bar.com'
])->where("id = {$id}")->execute();

// eliminado datos
$builder->delete()
    ->from('users')
    ->where("name like %Foo")
    ->execute();
    
// transacciones (callback)
$builder->transaction(function($b) {
    
    // operaciones...
    
    $b->insert(['id' => 1])->into('users');
    $b->setTable('posts')->delete()->where('user.id = 1')->execute();
    
    // más operaciones ...
    
});

// transacciones (manual)
try {
    $builder->beginTransaction();

    // operaciones...
    
    $builder->insert(['id' => 1])->into('users');
    $builder->setTable('posts')->delete()->where('user.id = 1')->execute();
    
    // más operaciones ...
    $builder->commit();
} catch (\Exception $e) {
    $builder->rollback();
}

示例

TODO

  • 原始查询。
  • 子查询。
  • 聚合。

感谢