tripda / curse
PostgreSQL游标读取器
v0.0.2
2015-04-22 21:19 UTC
Requires (Dev)
- phpunit/phpunit: @stable
This package is not auto-updated.
Last update: 2024-10-02 08:43:42 UTC
README
如果你使用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将会“关闭”(提交事务并关闭连接),以避免在您的数据库中创建过多的连接。