monoclus / db
PDO 的轻量级包装器。
0.1
2020-10-15 22:40 UTC
Requires
- ext-pdo: *
Requires (Dev)
- monolog/monolog: ^2.1
- phpunit/phpunit: ^9.4
This package is auto-updated.
Last update: 2024-09-16 07:02:07 UTC
README
这是一个 PDO 的轻量级包装器。它的目的是解决 PDO 目前的一些明显不足。它**不是**PDO 的替代品。
快速示例
Connection::create()
->table('users')
->insert(['user_name'=>'tom',
'first_name'=>'Tom',
'last_name'=>'Sawyer']);
明显限制
- 它不是 ORM。如果您需要 ORM,请尝试 Doctrine。
- 0.1 版本仅适用于 MySQL。
- 它不是 PDO 的替代品
示例
连接到数据库
use monoclus\db
// Option 1: Create an object
$conn = new Connection($dsn, $user, $pass);
// Option 2: Use a builder
Connection::create($dsn, $user, $pass);
// Option 3: Create an object, but the parameters must be store in $_ENV
$conn = new Connection();
// Option 4: Use a builder with $_ENV parameters
Connection::create();
Connection::create()
->throwExceptionOnError()
插入
Connection::create()
->table('users')
->insert(['user_name'=>'tom',
'first_name'=>'Tom',
'last_name'=>'Sawyer']);
更新
Connection::create()
->table('users')
->filter(['id'=>4])
->update(['user_name'=>'tom',
'first_name'=>'Tom',
'last_name'=>'Sawyer']);
删除
Connection::create()
->table('users')
->filter(['id'=>4])
->delete();
所有其他情况
使用标准的 PDO 函数,并尽可能使用预处理语句。
https://php.ac.cn/manual/en/book.pdo.php
$sql = 'SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour LIKE :colour';
$sth = Connection::create()->prepare($sql);
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', "%{$colour}%");
$sth->execute();
或者,要更新更多记录
$sql = 'UPDATE fruit
SET calories = :calories + 5
WHERE colour = :colour';
$sth = Connection::create()->prepare($sql);
$sth->execute();