PHP Zend - 执行以获取行集和记录总数

时间:2011-05-14 05:12:35

标签: php mysql row

我遇到一些问题,我想执行一条SQL语句并获取记录总数+所有记录。

$strSQL = "SELECT * FROM table WHERE ProjectID = 1 ";
$stmt = $db->query($strSQL);
$total = count($stmt->fetchAll());
while ($row = $stmt->fetch()){
    ..No More Record Shown here..
}

但是在我执行fetchAll后,while循环中没有更多记录,我相信我需要回到第一行或其他什么,有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您已使用fetchAll()获取了所有记录。因此,当您致电fetch()时,没有更多的记录可供阅读。尝试将fetchAll()的返回值存储在变量中并迭代它。像这样:

$strSQL = "SELECT * FROM table WHERE ProjectID = 1";
$stmt = $db->query($strSQL);
$allRows = $stmt->fetchAll();
$total = count($allRows);
foreach ($allRows as $row){
    // process each $row
}