提供PDO工厂和CRUD操作的数据库库

3.2.0 2024-05-16 18:25 UTC

This package is auto-updated.

Last update: 2024-09-04 01:05:01 UTC


README

工厂

该工厂使用 \DealNews\GetConfig读取数据库设置并创建PDO数据库连接来创建PDO对象。

支持的设置

用法

示例

$mydb = \DealNews\DB\Factory::init("mydb");

CRUD

CRUD类是一个包装了常见PDO逻辑的辅助类,用于CRUD操作。

基本用法

$mydb = \DealNews\DB\Factory::init("mydb");
$crud = new \DealNews\DB\CRUD($mydb);

// Create
$result = $crud->create(
    // table name
    "test",
    // data to add
    [
        "name"        => $name,
        "description" => $description,
    ]
);

// Read
$rows = $crud->read(
    // table name
    "test",
    // where clause data
    ["id" => $id]
);

// Update
$result = $crud->update(
    // table name
    "test",
    // data to update
    ["name" => "Test"],
    // where clause data
    ["id" => $id]
);

// Delete
$result = $crud->delete(
    // table name
    "test",
    // where clause data
    ["id" => $row["id"]]
);

高级用法

该类还公开了一个run方法,该方法被其他方法内部使用。可以通过提供SQL查询和参数数组(这些参数将被映射到预处理查询)来运行复杂查询。该方法返回PDOStatement对象。

// Run a select with no parameters
$stmt = $crud->run("select * from table limit 10");

// Run a select query with paramters
$stmt = $crud->run(
    "select * from table where foo = :foo"
    [
        ":foo" => $foo
    ]
);

测试

默认情况下,只运行单元测试。要运行功能测试,主机机器需要是Docker主机。此外,pdo_pgsql、pdo_mysql和pdo_sqlite扩展必须在主机机器上安装。PHPUnit将启动和停止Docker容器以测试MySQL和Postgres连接。在运行PHPUnit时使用--group functional来运行这些测试。