zend框架计算mysql查询中的行数

时间:2013-05-06 05:05:14

标签: zend-framework

我是zend framework的新手

我想计算查询中的行数

这是我的代码:

$nm = new Zend_Db_Table('emp');
$row = $nm->fetchRow($nm->select()->where('id= ?', $a));  

3 个答案:

答案 0 :(得分:0)

是的,您可以尝试以这种方式获取sql查询返回的总行数。

$select = $this->select();

$select->where('id= ?', $a);

$result=$this->fetchAll($select);

if(empty($result)){
    return false;
}else{
        echo "Total number of users : -> ".count($result->toArray());
} 

请告诉我是否可以为您提供更多帮助。

答案 1 :(得分:0)

如果您使用主键测试记录的存在,则可以使用$nm->find($a)并检查是否有任何结果。

如果您希望结果集很小,那么您可以

$nm->fetchAll($nm->select()->where("id = ?", $a);

如果你希望结果集变得很大而且你真正追求的只是计数,那么编写一个询问字段数的查询可能会最有效地防止查询占用大量的服务器存储器:

$row = $nm->getAdapter()->fetchRow("select count(*) as num_rows".
       " from ".$nm->info(Zend_Db_Table_Row_Abstract::NAME).
       " where ".$nm->getAdapter()->quoteInto("id = ?", $a));
echo "Users ".$row["num_rows"];

答案 2 :(得分:0)

在Zend Framework 1中,您可以在查询的最后使用count()函数来获取表中的总行数。

例如:

$row = $nm->fetchAll($nm->select()->where('id = ?', $a ))->count();

注意:这只会返回表格中的总行数。输出为整数。