这是什么框架?! SQL

v0.3.1 2024-09-16 12:33 UTC

This package is auto-updated.

Last update: 2024-09-16 12:34:18 UTC


README

此库提供了一种流畅的接口来生成 SQL 语句字符串。

DBAL 库通过 PDO 包装器扩展了此库。

安装

composer require wtframework/sql

文档

支持的语法

  • MariaDB
  • MySQL
  • PostgreSQL
  • SQLite
  • TSQL

支持的语句

示例

use WTFramework\SQL\SQL;

echo $stmt = SQL::select()
->from('users')
->where('email_address', 'admin@example.net');
SELECT * FROM users WHERE email_address = ?


在将对象转换为字符串(如上所示)后,bindings 方法将返回一个绑定参数数组。

print_r($stmt->bindings());
Array
(
    [0] => admin@example.net
)

语法

默认的全局语法是 MySQL。使用静态 SQL::use 方法来更改它。这不会应用于任何现有语句。

use WTFramework\SQL\Grammar;

$stmt1 = SQL::select();

SQL::use(Grammar::TSQL);

$stmt2 = SQL::select();

// $stmt1 will use MySQL, $stmt2 will use TSQL.


use 方法还可以用于覆盖单个语句的语法。

$stmt1->use(Grammar::PostgreSQL);

扩展库

要扩展库,您可以使用静态 macro 方法,传递新方法名称和要调用的闭包。这对于静态和非静态方法都适用。这在 SQL 类以及所有语句和服务类上都是可用的。

use WTFramework\SQL\SQL;

SQL::macro('count', function (string $table)
{

  return static::select()
  ->column('COUNT(*) AS counter')
  ->from($table);

});
SQL::count('users');