Zend framework zend framework统计mysql查询中的行数

Zend framework zend framework统计mysql查询中的行数,zend-framework,Zend Framework,我是zend框架的新手 我想计算查询中的行数 这是我的代码: $nm = new Zend_Db_Table('emp'); $row = $nm->fetchRow($nm->select()->where('id= ?', $a)); 是的,您可以通过这种方式尝试获取sql查询返回的总行数 $select = $this->select(); $select->where('id= ?', $a); $result=$this->fetchAll

我是zend框架的新手

我想计算查询中的行数

这是我的代码:

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

是的,您可以通过这种方式尝试获取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());
} 

如果我能为您提供更多帮助,请告诉我。

如果您正在通过主键测试记录的存在性,那么您可以使用
$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"];

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

例如:

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


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

fetchRow将只获取单个行计数(*)查询可以做到这一点。或者$nm->rowcount()如果您希望从数据库中检索行,并且希望在字母代码中使用它们,并且希望计算数据库返回的行数,这是一个很好的解决方案。请注意,如果您只想打印数据库中可用的行数,那么这种构造非常糟糕。在大型表上,此构造可能会产生内存不足的致命错误。而是从tableName中使用select count(*),其中id=idNumber。