什么是PDO可滚动游标?
什么是“使用可滚动游标读取行”?
维基百科给出了这个:
使用不可滚动游标(也称为仅进)时,最多可以获取每行一次,游标会自动移动到紧随其后的行。检索完最后一行后的读取操作将游标置于最后一行之后,并返回 SQLSTATE 02000 (SQLCODE +100)。
还有这个:
程序可以使用 FETCH SQL 语句将可滚动游标定位在结果集中的任意位置。
您应该阅读前面链接的文章,但这看起来也是一些有趣的信息:
可滚动游标可能会多次访问结果集中的同一行。因此,来自其他事务的数据修改(插入、更新、删除操作)可能会对结果集产生影响。
在 PHP 中,您可以通过使用预准备语句将可滚动游标与 PDO 一起使用(请参阅 PDOStatement::fetch
):
若要为 PDOStatement 对象请求可滚动游标,必须在使用 PDO::p repare() 准备 SQL 语句时,将 PDO::ATTR_CURSOR 属性设置为 PDO::CURSOR_SCROLL。
(该页面下方还有一个示例)
似乎有趣的是能够“滚动”结果集,而无需获取内存中的所有数据来迭代它。