SQLSTATE [HY093]:参数号无效:没有参数绑定zend

时间:2014-01-16 06:02:53

标签: php zend-framework

我阻止了一些未经授权的用户的内容,我的情况很好,但在访问这个自己的控制器时,我收到错误。 请帮帮我。

$offer = new Application_Model_DbTable_Offers();
        $query = $offer->fetchAll($offer->select()
                                        ->from('vs_offers')
                                        ->where('id =?',$o_id)
                                        ->where('campaign_id IN (SELECT id from vs_campaign WHERE advertiser_id = ?)', $this->sessiondata->id));

if(count($query) < 1){
    $this->_helper->flashMessenger->addMessage('Unauthorize access');
    $this->_redirect('offers/');
    exit;
}

2 个答案:

答案 0 :(得分:2)

在Zend中使用IN子句略有不同。一种方法是使用Zend_Db_Expr来执行IN子句操作,如

->where(new Zend_Db_Expr(sprintf('campaign_id IN
            (SELECT id from vs_campaign WHERE advertiser_id = %1$d)',
            $this->sessiondata->id)));

另一种方法是使用subquery

答案 1 :(得分:0)

您的一个参数很可能为空

$o_id$this->sessiondata->id

参考旧答案 - ZF: Invalid parameter number: no parameters were bound Error