plumphp / plum-pdo
将PDO集成到Plum中。
v0.1.1
2015-10-06 16:07 UTC
Requires
- plumphp/plum: ~0.2
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.3
This package is auto-updated.
Last update: 2024-09-20 09:38:35 UTC
README
PlumPdo将PDO集成到Plum中。Plum是PHP的数据处理管道。
由欧洲维也纳的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文件。