Php Zend框架中的一个小where查询问题

Php Zend框架中的一个小where查询问题,php,zend-framework,zend-framework2,zend-form,Php,Zend Framework,Zend Framework2,Zend Form,我是zend Framework的新手,我在查询中遇到了一个问题,请帮助我 $rowset = $this->tableGateway->select(function (Select $select) { $syear = date('Y'); $select->where(array( 'YEAR(date) = ?' => $syear, 'user_id = ?' =>$myid,

我是zend Framework的新手,我在查询中遇到了一个问题,请帮助我

 $rowset = $this->tableGateway->select(function (Select $select) {
        $syear = date('Y');
        $select->where(array(
        'YEAR(date) = ?' => $syear,
        'user_id = ?' =>$myid,
        )); 
        $select->order('id DESC');
        });
        $counter3= count($rowset);
在这里,我想计算当前年份记录的计数,用户ID固定为50,然后输出的是所有具有50个用户ID和当前年份的数据

这里是我的年度条件,其中成功工作,但“用户id=?”=>$myid

它不起作用,假设$myid值为50

但如果我直接传递50个值,比如'user_id=?'=>50,那么它就可以工作了

这里有什么问题,

提前感谢。

我正在留言,在调用select函数之前定义了$myid。在这种情况下,你需要告诉你的选择函数使用这个变量

$rowset = $this->tableGateway->select(function (Select $select) use($myid) {});

如何获取$myid变量?var_dump$myid;出口请在使用查询之前单击它,并尝试找出哪里出了问题。感谢您的重播,但是var\u dump输出为int50,但我的结果不正确,它仍然显示0 userPaste assembled查询,返回者:var\u dump$select->\u\u toString;在我看来,变量似乎超出了范围。您使用的是匿名函数,因此无法访问先前定义的变量。只需在函数调用中添加一个use myid,它就可以工作了。$myid已经从函数参数中调用,返回int50