ulrack/dbal-pdo

此包已被弃用,不再维护。作者建议使用 grizz-it/dbal-pdo 包。

Ulrack 实现PDO的数据库抽象层包

2.2.0 2020-10-25 14:41 UTC

This package is auto-updated.

Last update: 2021-04-03 12:56:07 UTC


README

Build Status

Ulrack DBAL PDO

Ulrack DBAL PDO 为 Ulrack DBAL 提供PDO实现。此包仅实现数据库连接和事务部分。

安装

要安装此包,请运行以下命令

composer require ulrack/dbal-pdo

用法

创建连接

要使用 Ulrack\Dbal\Pdo\Component\Connection\PdoConnection 对象与数据库建立连接,建议使用包中提供的工厂。

首先,通过添加以下内容初始化工厂:

<?php

use Ulrack\Dbal\Pdo\Factory\PdoConnectionFactory;

$factory = new PdoConnectionFactory;

然后,通过调用 create 方法创建 PdoConnection 实例。

<?php

$connection = $factory->create(
    'mysql:dbname=test;host=localhost',
    'test',
    'test'
);

然后,工厂将创建一个 PDO 对象,将其注入到 PdoConnection 对象中,并返回连接对象。

create 方法有以下参数

string $dsn

此参数期望一个DSN字符串。数据源名称(DSN)包含连接到数据库所需的信息。有关如何为MySQL创建此类字符串的示例,请参阅此处

string $username

此字符串期望数据库用户的用户名,您希望通过该用户名将应用程序连接到数据库。

string $password (可选)

密码字段期望前面提到的用户的密码。

array $options (可选)

此参数期望键值对中的特定于驱动程序的连接选项。这些可以在PHP.net上的PDO驱动程序页面找到。

array $attributes (可选)

此参数期望以键值对形式设置的PDO属性。这些选项可以在此处找到。所有这些选项都在初始化后立即设置在PDO对象上。

调用数据库

建立与数据库的连接后,可以向 PdoConnection 发送查询对象,它们将在数据库上运行查询。

在完全组装查询对象后,可以按照以下方式执行它:

// Immediate call to the database.
$result = $connection->query($queryObject);

// Transactional call to the database.
$connection->startTransaction();
$result = $connection->query($queryObject);
$connection->commit();
// It is also possible to rollback a transaction before it is committed:
$connection->rollback();

如果查询是插入新记录,可以通过调用lastTransactionId获取插入ID。

$connection->lastTransactionId();

读取结果

查询的结果通过Ulrack\Dbal\Pdo\Component\Result\PdoQueryResult类的实例发送回应用程序。可以通过遍历该对象来迭代它,如果需要一次性检索所有记录,则可以在结果对象上调用fetchAll()方法。

可以通过“计数”对象来获取受影响的记录数。

count($result); //Returns affected rows.

要断言查询的成功,可以在结果对象上调用isSuccess方法。

可以通过调用结果对象上的getErrors和getStatusCode来获取状态码和错误(失败查询的结果)。

所有SQLState状态码都可以在这里找到:这里

变更日志

有关最近更改的详细信息,请参阅CHANGELOG

贡献

有关详细信息,请参阅CONTRIBUTINGCODE_OF_CONDUCT

MIT许可

版权所有 (c) GrizzIT

特此授予任何获得此软件及其相关文档副本(“软件”)的个人免费使用权,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供方提供软件的人这样做,但受以下条件约束:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和不侵犯版权。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任承担责任,无论此类责任是因合同、侵权或其他行为引起的,无论此类责任是否源于、源自或与软件或软件的使用或其他方式有关。