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

755阅读 0评论2012-01-12 背包包111
分类:

出错部分代码如下:


$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) );

上一篇:Oracle安装之RHEL4.7_x86_64+Oracle10gR2
下一篇:Java学习总结 16个亮点