Chinaunix首页 | 论坛 | 博客
  • 博客访问: 42603
  • 博文数量: 17
  • 博客积分: 69
  • 博客等级: 民兵
  • 技术积分: 95
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-04 02:38
文章分类
文章存档

2012年(13)

2011年(4)

我的朋友
最近访客

分类:

2012-01-12 22:05:13

出错部分代码如下:


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

阅读(732) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~