什么是PDO可滚动游标?

Ale*_*x L 20 php mysql pdo

什么是"用可滚动光标获取行"?

sou*_*rge 16

它为查询创建一个游标,允许您迭代结果集而不一次获取整个结果.甲滚动光标,具体地说,是允许迭代向后.

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

  • 如果您打算使用它们,您还应该参考(实际)dbms文档来找出您使用的光标类型.对于其中一些,可滚动版本比仅向前游标更"昂贵",甚至不可用. (2认同)

Pas*_*TIN 9

维基百科给出了:

使用不可滚动的游标(也称为仅向前游标),可以最多对每行进行一次FETCH,并且游标会自动移动到紧随其后的行.检索到最后一行之后的提取操作将光标定位在最后一行之后并返回SQLSTATE 02000(SQLCODE +100).

还有这个 :

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

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

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

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

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

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

有趣的是能够"滚动"结果集,而无需获取内存中的所有数据来迭代它.