首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend-framework查询顶部

Zend-framework查询顶部
EN

Stack Overflow用户
提问于 2014-05-22 23:36:36
回答 2查看 919关注 0票数 1

您好,我尝试在Zend2中生成一个查询,如下所示

代码语言:javascript
复制
 select top 10 * from mensaje where idUsuario = 11 order by fechaAltaMensaje DESC

我试着用这个

代码语言:javascript
复制
$select = $sql->select();
   $select->from('mensaje');
   $select->where('idUsuario = '.$idUser.' order by fechaAltaMensaje DESC');
$select->limit(5);

但这不管用

EN

回答 2

Stack Overflow用户

发布于 2014-05-23 13:45:08

为了让代码正常工作,您在代码中缺少了一些细节,

请看下面的内容。

代码语言:javascript
复制
$adapter = $this->tableGateway->getAdapter();//use Zend\Db\TableGateway\TableGateway;
$sql = new Sql($adapter);//use Zend\Db\Sql\Sql;
$select = $sql->select();
$select->from('mensaje');
$select->where('idUsuario = '.$idUser.'');
$select->order('fechaAltaMensaje DESC');
$select->limit(5);
$selectString = $sql->getSqlStringForSqlObject($select);//print_r($selectString);die; //gives you the query in string
$results = $adapter->query($selectString, $adapter::QUERY_MODE_EXECUTE);
$resultSet = new ResultSet();//use Zend\Db\ResultSet\ResultSet;
$resultSet->initialize($results);
return $resultSet->toArray();//the result to array

请阅读下面的教程,您将对此有全面的了解

Examples

Examples 2

票数 1
EN

Stack Overflow用户

发布于 2017-04-04 22:42:14

limit函数仅适用于支持它的平台。要在SQL中实现您想要的功能,需要使用quantifier函数。

Also - where接受column => value对的数组。

还有一个order函数,它接受列名和方向:

代码语言:javascript
复制
$select = $sql->select();
$select->from('mensaje')
       ->where(['idUsuario' => $idUser])
       ->order('fechaAltaMensaje DESC')
       ->quantifier('TOP(5)')

我对Zends抽象层的实现不满意,当你需要使用两个不同的函数来编写不是跨平台的sql来做像limittop这样的简单事情时。那只是我的两便士。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23811334

复制
相关文章

相似问题

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