我阻止了一些未经授权的用户的内容,我的情况很好,但在访问这个自己的控制器时,我收到错误。 请帮帮我。
$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;
}
答案 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