首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend_Db_Table_Abstract计数

Zend_Db_Table_Abstract计数
EN

Stack Overflow用户
提问于 2011-09-13 00:40:42
回答 4查看 2.2K关注 0票数 2

在Zend_Db_Table_Abstract上,我使用以下代码来获取select结果的计数:

代码语言:javascript
复制
$this->setTableName('visitors');
$select = $this->select()
               ->from('visitors')
               ->columns(array('total' => new Zend_Db_Expr('COUNT(*)')))
               ->where('...');
$visits = $this->_fetch($select);

有没有更好的方法,也就是,直接返回计数。这将返回数组中的其他一些数据...我只想知道结果的数量。在straight中,等效项是select count(mycol) from visitors where ....

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-13 00:43:17

这是未经测试的,但应该可以帮助您入门:

代码语言:javascript
复制
$results = $this->getAdapter()
  ->query("SELECT COUNT(*) AS total FROM visitors WHERE ...")
  ->fetchAll();
$visits = $results[0]["total"];

您不需要对每个查询都使用Table/Select接口。

更新:来自@SMka的评论+1,因为它指出这可以更简单:

代码语言:javascript
复制
$visits = $this->getAdapter()
  ->fetchOne("SELECT COUNT(*) AS total FROM visitors WHERE ...");
票数 4
EN

Stack Overflow用户

发布于 2011-09-13 00:46:15

代码语言:javascript
复制
$count = $this->select()->from($this,'COUNT(*)')->query()->fetchColumn();
票数 4
EN

Stack Overflow用户

发布于 2011-09-13 00:44:26

http://framework.zend.com/manual/en/zend.db.adapter.html

请参阅fetchOne

代码语言:javascript
复制
$this->setTableName('visitors');
$select = $this->select()
               ->from('visitors')
               ->columns(array('total' => new Zend_Db_Expr('COUNT(*)')))
               ->where('...');
$count = $this->getAdapter()->fetchOne($select);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7391151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档