mysql_data_seek pdo 等效项

发布于 2024-07-16 01:50:24 字数 67 浏览 1 评论 0原文

这相当于使用 pdo 对象的 mysql_data_seek? 你可以给我一个例子吗?

谢谢!

Which is the equivalent of mysql_data_seek using pdo objects?
Can you give me an example?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

澉约 2024-07-23 01:50:24

通常的答案是:您的数据是否直接在数组 PDOStatement::fetchAll 中查找...但如果查询获取大量数据,则这是错误的(!)。

有 2 个真正的解决方案,

1) 如果数据库允许使用 PDO::FETCH_ORI_ABSPDO::FETCH_ORI_REL
例如,

$result = $sth->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 973);

(编辑)但是,正如 @ChoiZ 所评论的,有一个 PDO-MySQL 限制:“MySQL 不支持 < a href="http://dev.mysql.com/doc/refman/5.0/en/cursors.html" rel="nofollow noreferrer">游标"(外部存储程序)“并且驱动程序无法为您模拟它们”...稍后尝试或使用 MySQL 的分支,例如 MariaDB。

2) 使用数据库解决方案(一种分页)。 例子:

SELECT a, b FROM table LIMIT 1, 973 

The usual answer is: do your data seek directly in the array PDOStatement::fetchAll... But it is WRONG IF the query fetches a lot of data (!).

There are 2 real solutions,

1) if database permits use PDO::FETCH_ORI_ABS or PDO::FETCH_ORI_REL,
example,

$result = $sth->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 973);

(EDIT) But, as commented by @ChoiZ, have a PDO-MySQL limitation: "MySQL does not support cursors" (outside stored programs) "and the driver cannot emulate them for you"... Try later or with MySQL's forks, like MariaDB.

2) use the database solution (a kind of pagination). Example:

SELECT a, b FROM table LIMIT 1, 973 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文