tripda/curse

PostgreSQL游标读取器

v0.0.2 2015-04-22 21:19 UTC

This package is not auto-updated.

Last update: 2024-10-02 08:43:42 UTC


README

Build Status

如果你使用PostgreSQL函数返回了大量的结果集,可能该是返回一个游标并尝试使用这个小巧的库来帮助你的时候了。

如何使用它

Composer安装即将推出!

这个组件是为了使用它自己的连接而制作的(您需要拥有自己的事务才能在PostgreSQL中使用游标),因此您需要使用组件的PDOConnection(PDO的包装器,方法少且功能简单)或创建自己的ConnectionInterface实现(例如,使用Doctrine的DBAL)。

请注意,该组件不会为您的查询声明游标或类似的东西(尽管这很快就会完成),它是为了接收一个返回游标的函数。也就是说,让我们看看一些代码(我将跳过连接部分,因为它真的非常简单)。

<?php

$storedProcedureName = 'sp_get_products';
$storedProcedureParameters = array();

$cursorReader = new SequentialCursorReader($connection, $storedProcedureName, $storedProcedureParameters);

$cursorReader->open();

while ($result = $cursorReader->read()) {
    // Do something here with one result
}

$cursorReader->close();

SequentialCursorReader不会回滚或存储结果,它只会一直前进,直到返回null(我知道这并不好),以表示没有更多的行可以读取。

因为它使用自己的连接,所以close__destruct将会“关闭”(提交事务并关闭连接),以避免在您的数据库中创建过多的连接。