plumphp/plum-pdo

将PDO集成到Plum中。

v0.1.1 2015-10-06 16:07 UTC

This package is auto-updated.

Last update: 2024-09-20 09:38:35 UTC


README

Plum

PlumPdo将PDO集成到Plum中。Plum是PHP的数据处理管道。

Build Status Windows Build status Scrutinizer Code Quality Code Coverage StyleCI

由欧洲维也纳的Florian Eckerstorfer开发。

安装

您可以使用Composer安装Plum。

$ composer require plumphp/plum-pdo

使用方法

有关更多信息,请参阅Plum文档

目前PlumPdo包含PdoStatementReader,用于从PDO兼容的数据库中读取数据。

PdoStatementReader

Plum\PlumPdo\PdoStatementReader返回一个用于PDOStatement结果集的迭代器。必须在调用之前调用execute()方法。

use Plum\PlumPdo\PdoStatementReader;

$statement = $pdo->prepare('SELECT * FROM users WHERE age >= :min_age');
$statement->bindValue(':min_age', 18);
$statement->execute();

$reader = new PdoStatementReader($statement);
$reader->getIterator(); // -> \ArrayIterator
$reader->count();

上面示例中显示的默认行为是getIterator()将调用fetchAll()PDOStatement上,并以\ArrayIterator的形式返回结果。但是,如果结果集非常大且内存成为关注点,则可以逐行获取结果集并将每一行传递给工作流程。您可以通过将选项yield设置为true来调用此行为。

在以下示例中,getIterator()返回一个\Generator

use Plum\PlumPdo\PdoStatementReader;

$statement = $pdo->prepare('SELECT * FROM users WHERE age >= :min_age');
$statement->bindValue(':min_age', 18);
$statement->execute();

$reader = new PdoStatementReader($statement, ['yield' => true]);
$iterator = $reader->getIterator(); // -> \Generator
foreach ($iterator as $row) {
}

使用yield的缺点是,读取器不再可计数,并且当在如此读取器上调用count()时,将抛出\RuntimeException

变更日志

版本 0.1.1 (2015年10月6日)

  • 修复Plum版本

版本 0.1 (2015年4月22日)

  • 首次发布

许可证

MIT许可证适用于plumphp/plum-pdo。有关完整的版权和许可信息,请查看与此源代码一起分发的LICENSE文件。