gpt4 book ai didi

php - PDO rowCount() 支持的数据库

转载 作者:搜寻专家 更新时间:2023-10-30 20:54:16 24 4
gpt4 key购买 nike

我只是在使用 PDO 的 rowCount() 方法寻找支持的数据库列表。我知道这听起来像是一个 RFTM 问题,但老实说,我根本找不到任何与它将在哪些特定数据库上工作相关的信息。我所知道的是手册中的内容:

PDOStatement::rowCount() returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding PDOStatement object.

If the last SQL statement executed by the associated PDOStatement was a SELECT statement, some databases may return the number of rows returned by that statement. However, this behaviour is not guaranteed for all databases and should not be relied on for portable applications.

我也知道这适用于 MySQL,不适用于 MS Server,但是 PDO 支持的其他数据库呢?

最佳答案

由于这个记录的限制,并且认识到所有当前的计算机都有大量内存,最便携,在大多数情况下最快,实现是发出 $result = $stmt->fetchAll() 然后使用 count($result)

在我看来,代码看起来也更清晰,因为返回值的循环变成了一个简单的 foreach($result as $row)。这是一个更快的实现,原因有两个:

  • 数据库驱动程序可以优化fetchAll,例如MySQL在这种情况下被记录为缓冲结果
  • 遍历记录的循环不涉及从脚本调用驱动程序。

既然您几乎肯定会在完成对最终用户的响应之前阅读回复的每一行,为什么不通过一次调用驱动程序来一次完成所有操作呢?以独立于数据库的方式为 SELECT 实现 rowCount 需要发出单独的 SELECT COUNT(*) 请求。

驱动程序执行 SELECT COUNT(*) 的工作量几乎与实际的 SELECT 一样多,因此处理请求的时间会加倍.

关于php - PDO rowCount() 支持的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29864281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com