segaja/database

该包已弃用且不再维护。未建议替代包。

围绕 doctrine/dbal 的包装器

维护者

详细信息

gitlab.com/Segaja/database

1.0.0 2019-02-21 22:55 UTC

This package is auto-updated.

Last update: 2023-01-20 10:40:43 UTC


README

安装

composer require segaja/database

用法

<?php
// example database config
$databaseConfig = [
    'charset'       => 'utf8',
    'dbname'        => 'database_name',
    'driver'        => 'pdo_mysql',
    'driverOptions' => [
        \PDO::ATTR_CASE               => \PDO::CASE_NATURAL,
        \PDO::ATTR_ERRMODE            => \PDO::ERRMODE_EXCEPTION,
        \PDO::ATTR_ORACLE_NULLS       => \PDO::NULL_TO_STRING,
        \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'",
    ],
    'host'          => 'database_hostname',
    'password'      => 'database_password',
    'user'          => 'database_user',
];

$dbalConnection = Doctrine\DBAL\DriverManager::getConnection(
    $databaseConfig,
    new Doctrine\DBAL\Configuration()                                                                  
)

$database = new \Segaja\Database($dbalConnection);

方法

insertId() : int

返回数据库连接的最后一个插入ID。

actionQuery(string $sql, array $params, array $types) : int

执行给定的SQL查询($sql)并使用给定的参数和类型。参数和类型需要有相同数量的条目。调用传递给 \Doctrine\DBAL\ConnectionexecuteUpdate() 函数。该方法返回受影响的行数。

multieSelectQuery(string $sql, array $params, array $types) : array

此方法代理 \Doctrine\DBAL\Connection::executeQuery() 方法。执行该方法后,在返回的语句上调用 fetchAll() 方法,并返回该调用的结果。

singleSelectQuery(string $sql, array $params, array $types) : array

此方法与 multiSelectQueriy() 方法非常相似,但它在查询($sql)的末尾添加了 " LIMIT "(如果不存在)。一旦调用 fetchAll() 方法,如果查询没有产生任何结果,则此方法返回 `null`,或者如果结果集不为空,则返回结果集的第一条记录。