什么是PDO可滚动游标?

2022-08-30 19:16:19

什么是“使用可滚动游标读取行”?


答案 1

它为查询创建一个游标,允许您循环访问结果集,而无需一次获取整个结果。具体来说,可滚动游标是允许向后迭代的游标。

使用示例:您可以向前滚动,直到找到所需的记录,然后迭代回来以获取以前的记录(如果需要)。


答案 2

维基百科给出了这个:

使用不可滚动游标(也称为仅进)时,最多可以获取每行一次,游标会自动移动到紧随其后的行。检索完最后一行后的读取操作将游标置于最后一行之后,并返回 SQLSTATE 02000 (SQLCODE +100)。

还有这个:

程序可以使用 FETCH SQL 语句将可滚动游标定位在结果集中的任意位置。

您应该阅读前面链接的文章,但这看起来也是一些有趣的信息:

可滚动游标可能会多次访问结果集中的同一行。因此,来自其他事务的数据修改(插入、更新、删除操作)可能会对结果集产生影响。

在 PHP 中,您可以通过使用预准备语句将可滚动游标与 PDO 一起使用(请参阅 PDOStatement::fetch):

若要为 PDOStatement 对象请求可滚动游标,必须在使用 PDO::p repare() 准备 SQL 语句时,将 PDO::ATTR_CURSOR 属性设置为 PDO::CURSOR_SCROLL。

(该页面下方还有一个示例)

似乎有趣的是能够“滚动”结果集,而无需获取内存中的所有数据来迭代它。


推荐