【问题标题】:fetching count and result in PDO在 PDO 中获取计数和结果
【发布时间】:2014-05-08 14:37:05
【问题描述】:

如果我必须查询 db 并根据行数做某事,在 mysql 中我只需查询,我可以简单地查询和使用

if($result->num_rows >= 1){

但在 PDO 中 我必须

  1. count查询,使用fetchCloumn()获取count
  2. 再次查询以获得相同的结果并做任何我想做的事

Rowcount is not helpful ,在 select 上不起作用

所以我进行了两次查询,PDO 在这里听起来没有帮助,我的方法是错误的还是正确的? 谢谢

【问题讨论】:

  • 为什么行数没有帮助?
  • @Daan 它不适用于选择
  • 那么为什么不使用COUNT(...)呢?如您提供的链接所示。
  • rowCount() 只能与::MYSQL_ATTR_FOUND_ROWS一起使用
  • @Fred-ii- 我知道 fred,不过你很有帮助,谢谢

标签: php mysql sql pdo rowcount


【解决方案1】:

恕我直言,计算查询返回的所有行(或发出第二个查询)只是为了找出是否有行有点矫枉过正。

$got_data = false;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $got_data = true;
    process_row($row);
}
if (!$got_data) {
     no_results();
}

如果您确实需要行数,在读取结果集时获取它是微不足道的:

$num_rows = 0;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $num_rows++;
    process_row($row);
}
if ($num_rows==0) {
     no_results();
}

YMMV.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-27
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 2012-08-26
    • 1970-01-01
    相关资源
    最近更新 更多