确定在 PHP 中使用 PDO 检索行数的最佳方法仍然是一个有争议的话题。本文探讨了替代方法,为寻求有效解决方案的程序员提供指导。
对于不需要访问实际数据的场景,建议使用以数据库为中心的方法。使用此方法,数据库执行行计数,仅返回数值。以下代码举例说明了这种方法:
$sql = "SELECT count(*) FROM `table` WHERE foo = ?"; $result = $con->prepare($sql); $result->execute([$bar]); $number_of_rows = $result->fetchColumn();
或者,PDStatement::rowCount() 可用于在检索数据本身时获取行计数。此方法与 MySQL 的缓冲查询(默认启用)有效配合。
但是,仅依赖 PDStatement::rowCount() 并不能保证其他数据库也能使用。根据 PDO 文档:
“对于大多数数据库,PDOStatement::rowCount() 不会返回受 SELECT 语句影响的行数。”
为了克服此限制,文档建议使用 PDO::query() 发出 SELECT COUNT(*) 语句,然后使用 PDStatement::fetchColumn() 检索所需的内容
最后,对于没有变量占位符的简单查询,可以直接使用 PDO::query():
$nRows = $pdo->query('select count(*) from blah')->fetchColumn(); echo $nRows;
以上是在 PHP 中使用 PDO 计算行数的最有效方法是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!