Home >php教程 >php手册 >Yii中CDbCriteria常用总结,yiicdbcriteria

Yii中CDbCriteria常用总结,yiicdbcriteria

WBOY
WBOYOriginal
2016-06-13 09:24:181362browse

Yii中CDbCriteria常用总结,yiicdbcriteria

转自 :http://www.cnblogs.com/mrcoke/articles/Yii.html

 

Yii的Active Recorder包装了很多。

特别是把SQL中 把where,order,limit,IN/not IN,like等常用短句都包含进CDbCriteria这个类中去,这样整个代码会比较规范,一目了然。

   $criteria =newCDbCriteria; 


   $criteria->addCondition("id=1"); //查询条件,即where id =1  
   $criteria->addInCondition('id', array(1,2,3,4,5));//代表where id IN (1,23,,4,5,);  
   $criteria->addNotInCondition('id',array(1,2,3,4,5));//与上面正好相法,是NOT IN  
   $criteria->addCondition('id=1','OR');//这是OR条件,多个条件的时候,该条件是OR而非AND 
   $criteria->addSearchCondition('name','分类');//搜索条件,其实代表了。。where name like '%分类%'  
   $criteria->addBetweenCondition('id', 1, 4);//between1 and 4   
     
   $criteria->compare('id',1);   //这个方法比较特殊,他会根据你的参数自动处理成addCondition或者addInCondition, 
                                   //即如果第二个参数是数组就会调用addInCondition  
    
   $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条数据,如果小于0,则不作处理  
   $criteria->offset =1;   //两条合并起来,则表示 limit 10 offset1,或者代表了。limit 1,10  
   $criteria->order = 'xxx DESC,XXX ASC' ;//排序条件 
   $criteria->group = 'group 条件'; 
   $criteria->having = 'having 条件 '; 
   $criteria->distinct = FALSE;//是否唯一查询

 

yii中取出的数据怎让他可以简介一些 有的时就需要他们取出的数据,关心其他的

find里面是可以使用CDbCriteria类来进行各种sql的操作的,具体的用法可以参考文档。

blog.csdn.net/...973922 这个地方也有很多数据库相关的操作的解释,非常详细,内容也很全。

如果只是需要选取特定的字段,可以使用如下的方法
model()->find(array('select' => '字段名1,字段名2', 'condition' => '选取条件'))
findAll类似
 

Yii CDbCriteria 支持存储过程

不知道你的需求是什么,为什么一定要用现成的组件呢,你试下,
$sql = "call fun()";
$data = Yii::app()->db->createCommand($sql)->queryAll();
 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn