检查数据库中存在的下一条记录

时间:2013-11-20 11:20:10

标签: mysql zend-framework pdo zend-db

我正在使用Zend fetch方法从数据库中获取大量记录以创建报告。因为{fn}与使用它的fetch相比是昂贵的。如果它是我需要的最后一行添加一些additinoal逻辑。所以我的问题是有没有办法检查while循环中是否存在下一条记录。我正在使用它,如下所示

fetchAll

有没有办法检查当前的记录是否是最后一条记录,或者是否存在任何其他记录。我知道通过计算记录并在循环内增加一个计数器来做到这一点。但我不需要它。任何解决方案。?

2 个答案:

答案 0 :(得分:1)

“有没有办法检查下一条记录是否存在”你​​的while循环上的条件恰好就是这样。如果不存在要获取的行,则循环将不再执行。

这样想:

while($arrResult = $objAchQry->fetch()) {

  //Do something

}

// Now I'm just after the last record
/*
do something
*/

如果确实需要在之前执行某些操作处理完最后一行,您可以将代码修改为

$total_records = // get total no of rows
$counter = 0;
while($arrResult = $objAchQry->current()) {
  //Do something
  $counter ++;

  //I need to do something here if its the last record like

  if( ! $bojAchQry->next()) {

    // The row currently being processed is the last one.

  } else {

    break;
  }
}

答案 1 :(得分:1)

单向 - 您可以使用计数器进行跟踪,

$total_records = // get total no of rows
$counter = 0;
while($arrResult = $objAchQry->fetch()) {
  //Do something
  $counter ++;

  //I need to do something here if its the last record like

  if($counter == $total_records  ) // this iteration will be the last one.
   //do something

}