有许多相互矛盾的说法.在PHP中使用PDO获取行数的最佳方法是什么?在使用PDO之前,我只使用了mysql_num_rows.

fetchAll是我不想要的东西,因为我有时可能要处理 Big Data 集,所以对我的使用不好.

你有什么建议吗?

推荐答案

$sql = "SELECT count(*) FROM `table` WHERE foo = ?"; 
$result = $con->prepare($sql); 
$result->execute([$bar]); 
$number_of_rows = $result->fetchColumn(); 

这不是最优雅的方式,而且还涉及到额外的查询.

PDO有PDOStatement::rowCount()个,显然在MySQL中有not个工作.好痛苦啊.

从PDO文档:

对于大多数数据库,

编辑:上面的代码示例使用了一条准备好的语句,在许多情况下,这对于计算行数来说可能是不必要的,因此:

$nRows = $pdo->query('select count(*) from blah')->fetchColumn(); 
echo $nRows;

Php相关问答推荐

如果WooCommerce产品具有特定的产品标签,则将元盒添加到管理WooCommerce产品

为什么这个方法调用用引号和花括号包裹?

编写WooCommerce多步骤签出

PHP日期操作,将多个日期输出为格式化字符串

Laravel关系-为用户获取属于组织的所有团队

Symfony 6.2 IsGraned具有多个角色

只收取WooCommerce中最高的运费

在WordPress中从CPT中删除插件

如何在微软图形API中使用用户S访问令牌或基于租户ID的访问令牌?

Codeigniter 4中的未定义变量$HOME

主机中未检索用户表数据

在 DateTime 或 DateTimeImmutable 对象上调用modify() 时是否必须使用空格?

在 groupBy laravel 5.7 中 Select 多列

URL中包含"&"与DirectoryIterator不兼容

设置GA4 PHP API的setSubject以允许访问所有管理员账户属性

WooCommerce checkout 流程中基于所选选项添加自定义费用

symfony/notifier + twig/inky-extra 在 dunglas/symfony-docker 中缺少 ext-xsl.

在WooCommerce我的账户单个订单页面中添加订单商品部分和按钮

docker |管道失败的 ubuntu 源列表

遇到特定键时修改二维数组以创建嵌套数据集