wtframework / sql
这是什么框架?! SQL
v0.3.1
2024-09-16 12:33 UTC
Requires
- php: ^8.2
Requires (Dev)
- pestphp/pest: ^3.0
README
此库提供了一种流畅的接口来生成 SQL 语句字符串。
DBAL 库通过 PDO 包装器扩展了此库。
安装
composer require wtframework/sql
文档
支持的语法
- MariaDB
- MySQL
- PostgreSQL
- SQLite
- TSQL
支持的语句
- DELETE
- INSERT
- REPLACE
- SELECT
- TRUNCATE
- UPDATE
- ALTER TABLE
- CREATE TABLE
- CREATE INDEX
- DROP TABLE
- DROP INDEX
示例
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');