繁体   English   中英

Zend | Db \\ Sql | Expression在Zend SL语句中不起作用

[英]Zend|Db\Sql|Expression not working in Zend SL statement

我无法从下面显示的Zend Framework sql语句中获取有效数据,该数据在php中使用,并且是从angularjs脚本调用的:

    $where = new Where ();   
    $where->greaterThanOrEqualTo('user_id', '963');  
    $resultSet = $this->tableGateway->select(function(Select $select) use
    ($where){
    $select->where($where);  
      $select->columns(array('date_added','datemonth' => new \Zend\Db\Sql\Expression("MONTH('date_added')"), 'count' => new \Zend\Db\Sql\Expression("COUNT(*)")));
    $select->group('datemonth');
    return $resultSet;

我的angular js脚本转储数据,如下所示:

    success(function(response) {

            for(var i in response.response) {
                var tc = response.response[i];
                alert("userdata date_added=" + tc['date_added'] + " datemonth=" + tc['datemonth'] + " count=" + tc["count"]);
         }

结果如下:

userdata date_added=2014-05-22 20:00:27 datemonth=undefined count=undefined

谁能告诉我我是否正确使用了Zend \\ Db \\ Sql \\ Expression或为什么datemonth和count不能正确返回? 我希望能够按月获取记录数。

更新:我能够从服务器转储putput,它显示了数据库记录中的所有字段,但没有显示在Zend Expression函数中为datemonth和count创建的字段。 下面是转储。 有人知道为什么表达式字段不在转储中吗?

邮递区号:

       echo "Resultset = " . $resultSet->date_added;

上面的代码转储:

       Resultset = {"success":true,"response":[{"inputFilter":null,"user_id":0,"instagram_user_id":"","fbid":"","instagram_username":null, "full_name":"","profile_image":"","bio":"","website":"","media_count":0,"following_count":0,"followed_by_count":0,"like_count":0,"recommend_count":0,"date_added":"2014-05-22 20:00:27","flag_count":0,"date_updated":"","email":"","password":"","access_token":"","premium":0,"login_attempts":0,"status":0,"request_count":0,"request_date":""}]}

您可以尝试以下方法预览您的SQL查询:

$sql = new \Zend\Db\Sql\Sql($this->tableGateway->adapter);
echo $sql->getSqlStringForSqlObject($select);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM