获取计数并导致PDO

时间:2014-05-08 14:37:05

标签: php mysql sql pdo rowcount

如果我必须查询db并根据行数做一些事情,在mysql中我只是查询而且我可以简单地查询和使用

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

但是在PDO中 我必须

  1. 进行计数查询,使用fetchCloumn()来计算
  2. 再次查询以获得相同的结果并做任何我想要的事情
  3. Rowcount is not helpful,它不适用于选择

    所以我要进行两次查询,PDO听起来没有帮助,我的方法是错误的还是我是对的? 感谢

1 个答案:

答案 0 :(得分: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();
}

因人而异。