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

问题描述 投票:0回答:3

我是zend框架的新手

我想计算查询中的行数

这是我的代码:

$nm = new Zend_Db_Table('emp');
$row = $nm->fetchRow($nm->select()->where('id= ?', $a));  
zend-framework
3个回答
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());
} 

如果我可以帮助你,请告诉我。


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"];

0
投票

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

例如:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.