资源描述:
《yii的ar增删改查实例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、YII(AR)-------------Yii操作数据库的3种方法-------------------------------一、执行原生太SQL的PDO方式。复制代码代码如下:$sql="";//原生态sql语句 xx::model()->dbConnection->createCommand($sql)->execute();二、ActiveRecord方式 (1)New方式复制代码代码如下:$post=newPost; $post->title='samplepost'; $post->conten
2、t='postbodycontent'; $post->save();(2)Criteria方式 也可以使用$condition指定更复杂的查询条件。不使用字符串,我们可以让$condition成为一个CDbCriteria的实例,它允许我们指定不限于WHERE的条件。 复制代码代码如下:$criteria=newCDbCriteria; $criteria->select='title'; //只选择'title'列 $criteria->condition='postID=:postID'; $crit
3、eria->params=array(':postID'=>10); $post=Post::model()->find($criteria);Yii的ActiveRecorder包装了很多。特别是把SQL中把where,order,limit,IN/notIN,like等常用短句都包含进CDbCriteria这个类中去,这样整个代码会比较规范,一目了然。 $criteria=newCDbCriteria; $criteria->addCondition("id=1");//查询条件,即wherei
4、d=1 $criteria->addInCondition('id',array(1,2,3,4,5));//代表whereidIN(1,23,,4,5,); $criteria->addNotInCondition('id',array(1,2,3,4,5));//与上面正好相法,是NOTIN $criteria->addCondition('id=1','OR');//这是OR条件,多个条件的时候,该条件是OR而非AND $criteria->addSearchCondition
5、('name','分类');//搜索条件,其实代表了。。wherenamelike'%分类%' $criteria->addBetweenCondition('id',1,4);//between1and4 $criteria->compare('id',1); //这个方法比较特殊,他会根据你的参数自动处理成addCondition或者addInCondition, //即如果第二个参数是数组就会调用addI
6、nCondition $criteria->addCondition("id=:id"); $criteria->params[':id']=1; $criteria->select='id,parentid,name';//代表了要查询的字段,默认select='*'; $criteria->join='xxx';//连接表 $criteria->with='xxx';//调用relations $criteria->limit=10; //取1条
7、数据,如果小于0,则不作处理 $criteria->offset=1; //两条合并起来,则表示limit10offset1,或者代表了。limit1,10 $criteria->order='xxxDESC,XXXASC';//排序条件 $criteria->group='group条件'; $criteria->having='having条件'; $criteria->distinct=FALSE;//是否唯一查询一种替代CDbCriteria的方法是给find方法传递
8、一个数组。数组的键和值各自对应标准(criterion)的属性名和值,上面的例子可以重写为如下: 复制代码代码如下:$post=Post::model()->find(array( 'select'=>'title', 'condition'=>'postID=:postID', 'params'=>array(':postID'=>10), ));当一个查询条件是关于按指定的值匹配几个列时,我