Yii框架使用CDbCriteria引发的一个错误

718阅读 0评论2012-01-12 小尾巴鱼121121
分类:

出错部分代码如下:


$where = new CDbCriteria();
$where->addInCondition('groupid',array(0,1,2,3,4));
$where->addCondition('posttime < :time ');
$where->addCondition('posttime > :endTime');
$where->params = array(':time'=>$time , ':endTime'=>$endTime) ;
$where->limit = $limit;
$where->offset = $offset;
$where->order = 'posttime desc';
return $this->findAll($where);

总是弹出来如下的错误信息:
Invalid parameter number: number of bound variables does not match number of tokens.
提示找不到参数,或者参数个数不足。
究其根源发现是因为在使用params语句赋值的时候,将其自身原有的参数给覆盖掉了,所以他自身的参数就找不到了。
解决办法如下:


//调用array_merge函数而不是单纯的赋值语句
$where->params =array_merge( array(':time'=>$time , ':endTime'=>$endTime) );

上一篇:探讨read的返回值的三种情况
下一篇:vs 和 VAssistX 常用快捷键