标签归档:Yii

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

出错部分代码如下:

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

一起学Yii—-Hello world

注:题目是一起学!表示我不是什么高手,我说的也不一定对。我只是用博客的形式来记录一下个人学习的经历,希望对大家有所帮助。当然,如果你看了本系列文章,有什么想法,可以给我留言,或者给我发邮件。I will be very glad to hear from you !

Yii是什么?Yii是一个PHP的框架,如果在百度或者谷歌里搜一下,PHP的框架排名,应该可以搜到一篇叫做《国外十大最流行PHP框架排名》的文章,排在最前边的就是Yii,然后紧跟在他后边的是CodeIgniter(以后简称CI),作者以前用的是CI,如果大家有一些关于CI方面的问题,也可以联系我讨论一下。然后剩下的框架就没有用过了。

下边介绍一下个人对于CI和YII的看法。

CI中个人认为最好用而且做的最好的地方就是helper函数,只要加载一次,那么就可以直接运行了,不需要new出一个对象,然后调用他的方法。实际上helper就是一堆函数库,加载辅助函数也就是将函数库文件包含进来。还有很有意思的Loader机制,不管你的东西是什么,都可以通过load进来,类库也好,辅助函数也后,核心也好,数据库也好,总之所有的一切一切只要load进来就好了。CI是将所有的东西,用loader集中在了一起,然后彼此协作完成了整个的请求过程。可以说loader是整个框架的核心吧!有时间大家可以研究一下loader的源代码,一定会大有收获的。当然作者过段时间也许会写一些关于CI源码学习的文章,来和大家分享和讨论。 继续阅读