摘要:根據(jù)條件查詢一個(gè)集合根據(jù)主鍵查詢一個(gè)集合可以使用多個(gè)主鍵根據(jù)條件查詢一個(gè)集合可以是多個(gè)條件把條件放到數(shù)組里面根據(jù)語(yǔ)句查詢一個(gè)數(shù)組根據(jù)主鍵查詢出一個(gè)對(duì)象根據(jù)條件查詢出一組數(shù)據(jù)可能是多個(gè)但是他只返回第一行數(shù)據(jù)根據(jù)
1、根據(jù)條件查詢一個(gè)集合
$objectResult=Post::model()->findAll($condition,$params); $oClasses = classes::model()->findAll(array( "select"=>"classId,className,grade,type,status", "condition"=>"classId=21 and grade=1", "order"=>"createtime desc", )); $objectResult=Post::model()->findAll("username=:name",array(":name"=>$username)); $objectResult=RepairItem::model()->findAll("orderno=:orderno and orderpostid=:orderpostid",array(":orderno"=>$orderInfo["orderno"],":orderpostid"=>$orderInfo["orderpostid"])); $infoArr = NewsList::model()->findAll("status = "1" ORDER BY postid DESC limit 10 ");
2、根據(jù)主鍵查詢一個(gè)集合,可以使用多個(gè)主鍵 findAllByPk
$objectResult=Post::model()->findAllByPk($postIDs,$condition,$params); $objectResult=Post::model()->findAllByPk($postid,"name like :name and age=:age",array(":name"=>$name,"age"=>$age)); $objectResult=Post::model()->findAllByPk(array(1,2));
3、根據(jù)條件查詢一個(gè)集合,可以是多個(gè)條件,把條件放到數(shù)組里面 findAllByAttributes
$objectResult=Post::model()->findAllByAttributes($attributes,$condition,$params); $objectResult=Post::model()->findAllByAttributes(array("username"=>"jack"));
4、根據(jù)SQL語(yǔ)句查詢一個(gè)數(shù)組 findAllBySql
$arrResult=Post::model()->findAllBySql($sql,$params); $arrResult=Post::model()->findAllBySql("select * from tbl_post where username like :name",array(":name"=>"?%"));
5、根據(jù)主鍵查詢出一個(gè)對(duì)象 eg:findByPk(1);
$arrResult=Post::model()->findByPk($postID,$condition,$params); $arrResult=Post::model()->findByPk(1);
6、根據(jù)條件查詢出一組數(shù)據(jù),【可能是多個(gè),但是他只返回第一行數(shù)據(jù)】
$arrRow=Post::model()->find($condition,$params); $arrRow=Post::model()->find("username=:name",array(":name"=>"jack"));
7、根據(jù)條件查詢一組數(shù)據(jù),【可以是多個(gè)條件,把條件放到數(shù)組里面,查詢的也是第一條數(shù)據(jù)】
$objectResult=Post::model()->findByAttributes($attributes,$condition,$params); $objectResult=Post::model()->findByAttributes(array("username"=>"objectResult"));
8、根據(jù)SQL語(yǔ)句查詢一組數(shù)據(jù),【查詢的也是第一條數(shù)據(jù)】
$objectResult=Post::model()->findBySql($sql,$params); $objectResult=Post::model()->findBySql("select * from objectResult where username=:name",array(":name"=>"objectResult"));
9、通過(guò)CDbCriteria類find查詢出一個(gè)對(duì)象
$criteria=new CDbCriteria; $criteria->select="username"; // 限制顯示哪些字段 $criteria->condition="username=:username"; //一個(gè)查詢條件用aCondition.多條件用addCondition $criteria->params=array(":username=>"jack""); $criteria->order = "postsort DESC"; $criteria->limit = "3"; $post=Post::model()->find($criteria);
10、多條件查詢的語(yǔ)句
$criteria = new CDbCriteria; $criteria->addCondition("postid=1"); //等同于 where postid = 1 $criteria->addInCondition("postid", array(1,2,3,4,5)); //等同于 where postid IN (1,2,3,4,5,); $criteria->addNotInCondition("postid", array(1,2,3,4,5));//等同于 NOT IN (1,2,3,4,5,) $criteria->addCondition("postid=1","OR");//等同于 OR而非AND $criteria->addSearchCondition("username", "jack");//等同于 where name like "%jack%" $criteria->addBetweenCondition("postid", 1, 4);// 等同于 between 1 and 4 $criteria->compare("postid", 1); //根據(jù)你的參數(shù)自動(dòng)處理成addCondition或者addInCondition. $criteria->compare("postid", array(1,2,3)); //數(shù)組就會(huì)調(diào)用addInCondition $criteria->select = "postid,parentid,name"; //限制顯示哪些字段 $criteria->join = "xxx"; //連接表 $criteria->with = "xxx"; //調(diào)用relations $criteria->limit = 10; //取1條數(shù)據(jù),如果小于0,則不作處理 $criteria->offset = 1; //兩條合并起來(lái),則表示 limit 10 offset 1,或者代表了。limit 1,10 $criteria->order = "xxx DESC,XXX ASC" ;//排序條件 $criteria->group = "group 條件"; $criteria->having = "having 條件 "; $criteria->distinct = FALSE; //是否唯一查詢
三、查詢個(gè)數(shù),判斷查詢是否有結(jié)果
根據(jù)一個(gè)條件查詢一個(gè)集合有多少條記錄,返回一個(gè)int型數(shù)字
$intCount=Post::model()->count($condition,$params); $intCount=Post::model()->count("username=:name",array(":name"=>$username));
根據(jù)SQL語(yǔ)句查詢一個(gè)集合有多少條記錄,返回一個(gè)int型數(shù)字
$intCount=Post::model()->countBySql($sql,$params); $intCount=Post::model()->countBySql("select * from objectResult where username=:name",array(":name"=>"objectResult"));
根據(jù)一個(gè)條件查詢查詢得到的數(shù)組有沒(méi)有數(shù)據(jù),有數(shù)據(jù)返回一個(gè)true,否則沒(méi)有找到
$boolExists=Post::model()->exists($condition,$params); $boolExist=Post::model()->exists("name=:name",array(":name"=>$username));
四、添加的方法
$objectPost = new Post; $objectPost->username = $username; $objectPost->password = $password;
或許
$objectPost->attributes = $arrNewData; if($objectPost->save()){ $intPostId= $objectPost->primaryKey; //生成主鍵id echo "添加成功"; }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=:staff AND host_postid=:host",array(":staff"=>$staff_postid,":host"=>$host_postid)); Post::model()->updateByPk($pk,$attributes,$condition,$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)代表數(shù)據(jù)庫(kù)中的post表根據(jù)條件username="jack",查詢出的所有結(jié)果status字段都自加1
六、刪除的方法
//deleteAll Post::model()->deleteAll($condition,$params); $count = Post::model()->deleteAll("username=:name and password=:pass",array(":name"=>"jack",":pass"=>"jack")); $count = Post::model()->deleteAll("postid in("1,2,3")");//刪除postid為這些的數(shù)據(jù) if($count>0){ echo "刪除成功"; }else{ echo "刪除失敗"; } //deleteByPk Post::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 "刪除失敗"; }}
七、執(zhí)行原生的SQL語(yǔ)句
$sql = "select t.*, t1.userphone, t1.truename, t1.usermail from {{member_contact}} t left join {{member}} t1 on t.userid = t1.userid where t.contactid in (1,2,3)"; $arrRows=Yii::app()->db->createCommand($sql)->query(); foreach ($arrRows as $k => $v){ }
八、事務(wù)處理 【多表更新插入操作請(qǐng)使用事務(wù)處理】
$transaction = Yii::app()->db->beginTransaction(); try{ $arrOrderProfile = array( "orderid" => $orderId, "userip" => $userip, "contactid" => $contactId, "updatetime"=> $now ); $modelOrderProfile = new RepairOrderProfile(); $modelOrderProfile->attributes = $arrOrderProfile; if(!$modelOrderProfile->save()){ throw new CException("維修訂單生成失敗,通知事務(wù)回滾"); } $recordCounter = Counter::model()->updateByPk(1,array("max_id"=>$orderId)); if($recordCounter <= 0 ) throw new CException("訂單計(jì)數(shù)器更新失敗,通知事務(wù)回滾"); $transaction->commit(); //提交事務(wù)會(huì)真正的執(zhí)行數(shù)據(jù)庫(kù)操作 }catch(Exception $e){ file_put_contents("action.log", $e->getCode().":".$e->getMessage()."--".date("Y-m-d H:i:s",time()),FILE_APPEND); $transaction->rollback(); }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/28773.html
摘要:也提供了命名查詢的方式,比如需要獲取最近一個(gè)月內(nèi)發(fā)布的篇文章,如果經(jīng)常性的用到這個(gè)查詢,可以使用命名查詢的方式來(lái)寫(xiě)。 這兩天用YII開(kāi)發(fā)了用戶管理的功能,以前雖然也用YII框架開(kāi)發(fā)過(guò)一些功能,但是總感覺(jué)對(duì)YII的使用還不是很熟練。 這次真正動(dòng)手之前,先復(fù)習(xí)了一遍 yii-guide-1.1.14.pdf 這本書(shū),上次看的時(shí)候太過(guò)于粗略了,這次仔仔細(xì)細(xì)的閱讀了一遍。 說(shuō)一下最直觀的感受 ...
摘要:建立關(guān)聯(lián)關(guān)系后,通過(guò)可以獲取一個(gè)對(duì)象的數(shù)組,該數(shù)組代表當(dāng)前客戶對(duì)象的訂單集。定義關(guān)聯(lián)關(guān)系使用一個(gè)可以返回對(duì)象的方法,對(duì)象有關(guān)聯(lián)上下文的相關(guān)信息,因此可以只查詢關(guān)聯(lián)數(shù)據(jù)。基于表外鍵定義關(guān)聯(lián)關(guān)系是最佳方法。 簡(jiǎn)介 Yii 在操作數(shù)據(jù)庫(kù)方面提供了一個(gè)十分強(qiáng)大的類庫(kù)來(lái)支撐整個(gè)框架業(yè)務(wù)的運(yùn)轉(zhuǎn),這就是 Active Record (活動(dòng)記錄,以下簡(jiǎn)稱AR)。 基本概念 AR類提供了一個(gè)面向?qū)ο蟮慕?..
摘要:今天把這個(gè)問(wèn)題講明白了,看看是怎么個(gè)多表關(guān)聯(lián)以及如何去優(yōu)化這個(gè)關(guān)聯(lián)。現(xiàn)需要在列表展示表的來(lái)源渠道,且該渠道可搜索。關(guān)聯(lián)表字段增加查詢中的搜索模型也是通過(guò)實(shí)現(xiàn)的,該模型通過(guò)控制著哪個(gè)字段可搜索,哪個(gè)字段不可搜索。 作者:白狼 出處:http://www.manks.top/yii2_many_ar_relation_search.html 本文版權(quán)歸作者,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留...
摘要:極致的插件機(jī)制,系統(tǒng)內(nèi)的系統(tǒng),安裝和卸載不會(huì)對(duì)原來(lái)的系統(tǒng)產(chǎn)生影響強(qiáng)大的功能完全滿足各階段的需求,支持用戶多端訪問(wèn)后臺(tái)微信前臺(tái)等,系統(tǒng)中的系統(tǒng)。多入口模式,多入口分為后臺(tái)前端,微信,對(duì)內(nèi)接口,對(duì)外接口,不同的業(yè)務(wù),不同的設(shè)備,進(jìn)入不同的入口。 RageFrame 2.0 為二次開(kāi)發(fā)而生,讓開(kāi)發(fā)變得更簡(jiǎn)單 項(xiàng)目地址:https://github.com/jianyan74/... 前言 這...
閱讀 1670·2021-10-13 09:39
閱讀 2099·2021-09-07 10:20
閱讀 2678·2019-08-30 15:56
閱讀 2945·2019-08-30 15:56
閱讀 932·2019-08-30 15:55
閱讀 625·2019-08-30 15:46
閱讀 3494·2019-08-30 15:44
閱讀 2552·2019-08-30 11:15