walnut/lib_dbquerybuilder

该软件包最新版本(0.0.4)没有提供许可证信息。

0.0.4 2024-01-22 11:11 UTC

This package is not auto-updated.

Last update: 2024-09-30 14:06:18 UTC


README

轻量级的选择、插入、更新和删除查询构建器。

示例

一些常用对象

$quoter = new MysqlQuoter;

$queryFilter = new QueryFilter(
    new AndExpression(
        new OrExpression(
            new NotExpression(
                new FieldExpression('name', 'LIKE',
                    new SqlValue("%test%"))
            ),
            new FieldExpression('id', '>', new SqlValue(3))
        ),
        new RawExpression("`name` NOT IN ('admin', 'dev')"),
        new FieldExpression('name', '!=', 'id')
    )
);

插入查询

$iqb = new InsertQuery(
    "clients", [
        "id" => new SqlValue(7),
        "name" => new SqlValue('Client 7')
    ]
);
echo $iqb->build($quoter), PHP_EOL;

更新查询

$uqb = new UpdateQuery(
    "clients", [
        "id" => new PreparedValue('id'),
        "name" => new SqlValue('Client 7')
    ],
    $queryFilter
);
echo $uqb->build($quoter), PHP_EOL;

选择查询

$sqb = new SelectQuery(
    "clients", [
        "id" => "id",
        "clientName" => "name"
    ],
    [
        new TableJoin("p", "projects", new QueryFilter(
            FieldExpression::equals(
                new TableField("_", "id"),
                new TableField("p", "client_id"),
            )
        ))
    ],
    $queryFilter,
    [
        OrderBy::ascending('id'),
        OrderBy::descending('name')
    ],
    SelectLimit::forPage(3, 20)
);
echo $sqb->build($quoter), PHP_EOL;

删除查询

$dqb = new DeleteQuery(
    "clients", $qf
);
echo $dqb->build($quoter), PHP_EOL;