1.根据条件查询一个集合$objectResult=Post::model()->findAll($condition,$params);$oClasses=classes::model()->findAll(array('select'=>'classId,className,grade,type,status','condition'=>'classId=21andgrade=1','order'=>'createtimedesc',));$objectResult=Post::model()->findAll("username=:name",array(":name"=>$username));$objectResult=RepairItem::model()->findAll("orderno=:ordernoandorderpostid=:orderpostid",array(":orderno"=>$orderInfo['orderno'],':orderpostid'=>$orderInfo['orderpostid']));$infoArr=NewsList::model()->findAll("status='1'ORDERBYpostidDESClimit10");2.根据主键查询集合,可以使用多个主键findAllByPk$objectResult=Post::model()->findAllByPk($postIDs,$condition,$params);$objectResult=Post::model()->findAllByPk($postid,"namelike:nameandage=:age",array(':name'=>$name,'age'=>$age));$objectResult=Post::model()->findAllByPk(数组(1,2));3.根据条件查询一个集合,可以是多个条件,将条件放在数组中在组中findAllByAttributes$objectResult=Post::model()->findAllByAttributes($attributes,$condition,$params);$objectResult=Post::model()->findAllByAttributes(array('username'=>'jack'));4.根据SQL语句findAllBySql$arrResult=Post::model()->findAllBySql($sql,$params);$arrResult=Post::model()->findAllBySql("select*fromtbl_postwhereusernamelike:name",array(':name'=>'?%'));5.根据主键查询一个对象eg:findByPk(1);$arrResult=Post::model()->findByPk($postID,$condition,$params);$arrResult=Post::model()->findByPk(1);6、根据条件查询一组数据,【可以是多条,但只返回第一行数据】$arrRow=Post::model()->find($condition,$params);$arrRow=Post::model()->find('username=:name',array(':name'=>'jack'));7、根据条件查询一组数据,【可以是多个条件,将条件放在数组中,查询也是第一条数据】$objectResult=Post::model()->findByAttributes($属性,$条件,$参数);$objectResult=Post::model()->findByAttributes(array('username'=>'objectResult'));8.根据SQL语句查询一组数据,【查询的也是第一条数据】$objectResult=Post::model()->findBySql($sql,$params);$objectResult=Post::model()->findBySql("select*fromobjectResultwhereusername=:name",array(':name'=>'objectResult'));9.通过CDbCriteria类查询一个对象find$criteria=newCDbCriteria;$criteria->select='用户名';//限制显示哪些字段$criteria->condition='username=:username';//ACondition用于一个查询条件,多个条件使用addCondition$criteria->params=array(":username=>'jack'");$criteria->order="postsortDESC";$criteria->limit="3";$post=Post::model()->find($criteria);10、多条件查询语句$criteria=newCDbCriteria;$criteria->addCondition("postid=1");//等于wherepostid=1$criteria->addInCondition('postid',array(1,2,3,4,5));//相当于wherepostidIN(1,2,3,4,5,);$criteria->addNotInCondition('postid',array(1,2,3,4,5));//相当于NOTIN(1,2,3,4,5,)$criteria->addCondition('postid=1','OR');//相当于OR而不是AND$criteria->addSearchCondition('username','jack');//相当于wherenamelike'%jack%'$criteria->addBetweenCondition('postid',1,4);//相当于1到4$criteria->compare('postid',1);//自动处理成addCondition或addInCondition.$criteria->compare('postid',arrayaccordingtoyourparameters(1,2,3));//数组会调用addInCondition$criteria->select='postid,parentid,name';//限制显示哪些字段$criteria->join='xxx';//连接表$criteria->with='xxx';//调用关系$criteria->limit=10;//取1条数据,小于0则不处理$criteria->offset=1;//合并两块,表示limit10offset1,或者表示。limit1,10$criteria->order='xxxDESC,XXXASC';//排序条件$criteria->group='groupcondition';$criteria->having='有条件';$criteria->distinct=FALSE;//是否是唯一查询3.查询次数,判断查询是否有结果,根据条件查询一个集合有多少条记录,返回一个int数$intCount=Post::model()->计数($条件,$params);$intCount=Post::model()->count("username=:name",array(":name"=>$username));根据SQL语句,查询一个集合有多少条记录,返回一个int类型的数$intCount=Post::model()->countBySql($sql,$params);$intCount=Post::model()->countBySql("select*fromobjectResultwhereusername=:name",array(':name'=>'objectResult'));根据条件查询,查询得到的数组中没有数据,如果有数据,返回一个true,否则没有找到$boolExists=Post::model()->exists($condition,$params);$boolExist=Post::model()->exists("name=:name",array(":name"=>$username));四、添加方法$objectPost=newPost;$objectPost->username=$username;$objectPost->password=$password;也许$objectPost->attributes=$arrNewData;if($objectPost->save()){$intPostId=$objectPost->primaryKey;//生成主键idecho"添加成功";}else{echo"添加失败";}五、修改方法Post::model()->updateAll($attributes,$condition,$params);$count=Post::model()->updateAll(array('username'=>'11111','password'=>'11111'),'password=:pass',array(':pass'=>'1111a1'));if($count>0){echo"修改成功";}else{echo"修改失败";}$rt=PostList::model()->updateAll(array('status'=>'1'),'staff_postid=:staffANDhost_postid=:host',array(':staff'=>$staff_postid,':host'=>$host_postid));Post::model()->updateByPk($pk,$attributes),$条件,$params);$count=Post::model()->updateByPk(1,array('username'=>'jack','password'=>'jack'));$count=Post::model()->updateByPk(array(1,2),array('username'=>'jack1','password'=>'jack1'),'username=:name',array(':name'=>'jack'));if($count>0){echo"修改成功";}else{echo"修改失败";}Post::model()->updateCounters($counters,$condition,$params);$count=Post::model()->updateCounters(array('status'=>1),'username=:name',array(':name'=>'jack'));if($count>0){echo"修改成功";}else{echo"修改失败";}//array('status'=>1)表示数据库中的post表。根据条件username='jack',所有查询结果的status字段都会加16.删除方法//deleteAllPost::model()->deleteAll($condition,$params);$count=Post::model()->deleteAll('username=:nameandpassword=:pass',array(':name'=>'jack',':pass'=>'jack'));$count=Post::model()->deleteAll('postidin("1,2,3")');//删除postid为这些的数据if($count>0){echo"删除成功";}else{echo"删除失败";}//deleteByPkPost::model()->deleteByPk($pk,$condition,$params);$count=Post::model()->deleteByPk(1);$count=Post::model()->deleteByPk(array(1,2),'username=:name',array(':name'=>'jack'));if($count>0){echo"删除成功";}else{echo"删除失败";}}7、执行原SQL语句$sql="selectt.*,t1.userphone,t1.truename,t1.usermailfrom{{member_contact}}tleftjoin{{member}}t1ont.userid=t1.useridwheret.contactidin(1,2,3)";$arrRows=Yii::app()->db->createCommand($sql)->query();foreach($arrRowsas$k=>$v){}八、事务处理[多请使用事务处理进行表更新和插入操作]$transaction=Yii::app()->db->beginTransaction();try{$arrOrderProfile=array('orderid'=>$orderId,'userip'=>$userip,'contactid'=>$contactId,'updatetime'=>$now);$modelOrderProfile=newRepairOrderProfile();$modelOrderProfile->attributes=$arrOrderProfile;if(!$modelOrderProfile->save()){thrownewCException('维护订单生成失败,通知事务回滚');}$recordCounter=Counter::model()->updateByPk(1,array('max_id'=>$orderId));if($recordCounter<=0)thrownewCException('订单计数器更新失败,通知事务回滚');$事务->提交();//提交事务会实际执行数据库操作}catch(Exception$e){file_put_contents('action.log',$e->getCode().':'.$e->getMessage().'--'.date('Y-m-dH:i:s',time()),FILE_APPEND);$事务->回滚();}
