亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

關于Yii基于數組和對象的Model查詢

2020-03-22 20:18:09
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Yii基于數組和對象的Model查詢技巧,結合實例形式較為詳細的分析了Yii針對數組及對象的Model查詢使用技巧,需要的朋友可以參考下

本文實例講述了Yii基于數組和對象的Model查詢技巧。分享給大家供大家參考,具體如下:

對于一個Model Post 有如下的4中查詢方法,返回對象或者對象數組。

//查找滿足指定條件的結果中的第一行 find the first row satisfying the specified condition$post=Post::model()- find($condition,$params);//查找具有指定主鍵值的那一行 find the row with the specified primary key$post=Post::model()- findByPk($postID,$condition,$params);//查找具有指定屬性值的行 find the row with the specified attribute html' target='_blank'>values$post=Post::model()- findByAttributes($attributes,$condition,$params);//未找到返回null//通過指定的SQL 語句查找結果中的第一行 find the first row using the specified SQL statement$post=Post::model()- findBySql($sql,$params);

如果find 方法找到了一個滿足查詢條件的行,它將返回一個Post 實例,實例的屬性含有數據表行中相應列的值。然后我們就可以像讀取普通對象的屬性那樣讀取載入的值,例如echo $post- title;。如果使用給定的查詢條件在數據庫中沒有找到任何東西, find 方法將返回null。

調用find 時,我們使用$condition 和$params 指定查詢條件。此處$condition 可以是SQL 語句中的WHERE 字符串,$params 則是一個參數數組,其中的值應綁定到$condation 中的占位符。例如:假設我們查詢postID = 10的數據

// find the row with postID=10$post=Post::model()- find( postID=:postID , array( :postID = 10));

條件$condition 就是我們sql里的where部分,那參數怎么辦呢,通過params傳遞,不過名字是加了 : 的。

YII有個CDbCriteria類來構造查詢,如果我們查詢postId為10的title,CdbCriteria是這樣構造的

$criteria=new CDbCriteria;$criteria- select= title // only select the title column$criteria- condition= postID=:postID $criteria- params=array( :postID = $post=Post::model()- find($criteria); // $params is not needed

一種替代CDbCriteria 的方法是給find 方法傳遞一個數組。數組的鍵和值各自對應標準( criterion)的屬性名和值,上面的例子可以重寫為如下:

$post=Post::model()- find(array( select = title , condition = postID=:postID , params = array( :postID = 10),));

當然也適用于findAll()

self::$_items[$type]=array();$models=self::model()- findAll(array( condition = type=:type , params = array( :type = $type), order = position ,));

當一個查詢條件是關于按指定的值匹配幾個列時,我們可以使用findByAttributes()。我們使$attributes 參數是一個以列名做索引的值的數組。
findByAttributes 里的$attributes就是字段的名字.查詢title為abc怎么查詢呢?見下面

Post::model()- findByAttributes(array( title = abc ))

其它方法:

1、$admin=Admin::model()- findAll($condition,$params);

該方法是根據一個條件查詢一個集合,如:

findAll( username=:name ,array( :name = $username));

2、$admin=Admin::model()- findAllByPk($postIDs,$condition,$params);
findAllByPk($id, name like :name and age=:age ,array( :name = $name, age = $age));
該方法是根據主鍵查詢一個集合,可以使用多個主鍵,如:

findAllByPk(array(1,2));

3、$admin=Admin::model()- findAllByAttributes($attributes,$condition,$params);

該方法是根據條件查詢一個集合,可以是多個條件,把條件放到數組里面,如:

findAllByAttributes(array( username = admin 

4、$admin=Admin::model()- findAllBySql($sql,$params);

該方法是根據SQL語句查詢一個數組,如:

findAllBySql( select *from admin where username=:name ,array( :name = admin 

二、查詢對像的方法

1、$admin=Admin::model()- findByPk($postID,$condition,$params);

根據主鍵查詢出一個對象,如:

findByPk(1);

2、$row=Admin::model()- find($condition,$params);

根據一個條件查詢出一組數據,可能是多個,但是他只返回第一行數據,如:

find( username=:name ,array( :name = admin 

3、$admin=Admin::model()- findByAttributes($attributes,$condition,$params);

該方法是根據條件查詢一組數據,可以是多個條件,把條件放到數組里面,他查詢的也是第一條數據,如:

findByAttributes(array( username = admin 

4、$admin=Admin::model()- findBySql($sql,$params);

該方法是根據SQL語句查詢一組數據,他查詢的也是第一條數據,如:

findBySql( select *from admin where username=:name ,array( :name = admin 

5、拼一個獲得SQL的方法,在根據find查詢出一個對象

$criteria=new CDbCriteria;$criteria- select= username // only select the title column$criteria- condition= username=:username $criteria- params=array( :username= admin $post=Post::model()- find($criteria); // $params is not needed

三、查詢個數,判斷查詢是否有結果

1、$n=Post::model()- count($condition,$params);

該方法是根據一個條件查詢一個集合有多少條記錄,返回一個int型數字,如

count( username=:name ,array( :name = $username));

2、$n=Post::model()- countBySql($sql,$params);

該方法是根據SQL語句查詢一個集合有多少條記錄,返回一個int型數字,如

countBySql( select *from admin where username=:name ,array( :name = admin 

3、$exists=Post::model()- exists($condition,$params);
該方法是根據一個條件查詢查詢得到的數組有沒有數據,如果有數據返回一個true,否則沒有找到

四、添加的方法

$admin=new Admin;$admin- username=$username;$admin- password=$password;if($admin- save() 0){ echo 添加成功 }else{ echo 添加失敗 }

五、修改的方法

1、Post::model()- updateAll($attributes,$condition,$params);

$count = Admin::model()- updateAll(array( username = 11111 , password = 11111 ), password=:pass ,array( :pass = 1111a1 if($count 0){ echo 修改成功 }else{ echo 修改失敗 }

2、Post::model()- updateByPk($pk,$attributes,$condition,$params);

$count = Admin::model()- updateByPk(1,array( username = admin , password = admin $count = Admin::model()- updateByPk(array(1,2),array( username = admin , password = admin ), username=:name ,array( :name = admin if($count 0){ echo 修改成功 }else{ echo 修改失敗 }

$pk代表主鍵,可以是一個也可以是一個集合,$attributes代表是要修改的字段的集合,$condition代表條件,$params傳入的值

3、Post::model()- updateCounters($counters,$condition,$params);

$count =Admin::model()- updateCounters(array( status = 1), username=:name ,array( :name = admin if($count 0){ echo 修改成功 }else{ echo 修改失敗 }

array( status = 1)代表數據庫中的admin表根據條件username= admin ,查詢出的所有結果status字段都自加1

六、刪除的方法

1、Post::model()- deleteAll($condition,$params);

$count = Admin::model()- deleteAll( username=:name and password=:pass ,array( :name = admin , :pass = admin  $id=1,2,3 deleteAll( id in( .$id. ) 刪除id為這些的數據if($count 0){ echo 刪除成功 }else{ echo 刪除失敗 }

2、Post::model()- deleteByPk($pk,$condition,$params);

$count = Admin::model()- deleteByPk(1);$count = Admin::model()- deleteByPk(array(1,2), username=:name ,array( :name = admin if($count 0){ echo 刪除成功 }else{ echo 刪除失敗 }

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !

相關推薦:

關于Yii Framework框架獲取分類下面的所有子類的方法

如何通過Yii框架使用魔術方法實現跨文件調用的功能

以上就是關于Yii基于數組和對象的Model查詢的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久天天躁狠狠躁夜夜躁2014| 欧美一级免费视频| 精品国产视频在线| 精品高清美女精品国产区| 精品久久中文字幕久久av| 91精品久久久久久久久久久久久久| 福利一区福利二区微拍刺激| 成人在线视频福利| 伊人激情综合网| 91av在线播放视频| 亚洲第一天堂无码专区| 久久久91精品国产一区不卡| 亚洲电影免费观看| 国产精品第三页| 国产精品444| 91国内精品久久| 91牛牛免费视频| 欧美日韩一区免费| 美女性感视频久久久| 精品福利在线看| 91香蕉嫩草影院入口| 午夜精品久久久久久99热软件| 最近的2019中文字幕免费一页| 成人在线激情视频| 热门国产精品亚洲第一区在线| yellow中文字幕久久| 欧美国产精品va在线观看| 国产精品丝袜白浆摸在线| 日韩美女免费视频| 精品无人国产偷自产在线| 国产精品嫩草视频| 欧美一级淫片videoshd| 亚洲人成在线观看网站高清| 亚洲精品中文字幕有码专区| 亚洲美女福利视频网站| 欧美日本精品在线| 国产精品国产福利国产秒拍| 亚洲级视频在线观看免费1级| 国产精品日韩久久久久| yellow中文字幕久久| 久久久免费精品视频| 91精品国产91久久久久久最新| 久久精品国产一区二区电影| 日韩在线观看免费高清| 亚洲国产精品人久久电影| 亚洲色图13p| 亚洲第一区中文99精品| 综合网日日天干夜夜久久| 97视频在线免费观看| 91精品国产91| 国产精品综合不卡av| 亚洲第一精品电影| 亚洲国产成人91精品| 久久精品久久精品亚洲人| 日韩欧美高清在线视频| 欧美精品久久久久久久免费观看| 精品视频久久久| 欧美中文字幕精品| 91免费在线视频| 国产精品影院在线观看| 国产精品2018| 久久中文精品视频| 亚洲一级免费视频| 欧美性色视频在线| 日韩电影第一页| 欧美日韩成人在线播放| 日韩中文视频免费在线观看| 川上优av一区二区线观看| 欧美福利小视频| 国自产精品手机在线观看视频| 国产精品入口福利| 国产精品免费久久久| 国产一区二区三区欧美| 精品国偷自产在线视频99| 日韩第一页在线| 懂色av中文一区二区三区天美| 久久人人爽人人爽人人片av高请| 国产精品精品视频| 中文字幕v亚洲ⅴv天堂| 一本一本久久a久久精品牛牛影视| 国产亚洲欧美日韩精品| 久久99视频免费| 日韩乱码在线视频| 亚洲第一国产精品| 97在线免费观看| 一区二区三区动漫| 欧美激情2020午夜免费观看| 国产91精品视频在线观看| 国产ts一区二区| 精品国产乱码久久久久久天美| 成人黄色影片在线| 97在线精品国自产拍中文| 久久久久久成人| 欧美日韩一区二区免费视频| 在线一区二区日韩| 成人国产精品日本在线| 亚洲天堂2020| 青青久久av北条麻妃海外网| 国产欧美一区二区白浆黑人| 国产成人福利网站| 亚洲国产欧美一区二区三区久久| 一本大道香蕉久在线播放29| 亚洲精品国精品久久99热| 欧美视频一区二区三区…| 欧美性生交xxxxxdddd| 136fldh精品导航福利| 国产亚洲人成网站在线观看| 中文字幕九色91在线| 亚洲女同性videos| 国产精品视频久久| 欧美性videos高清精品| 精品国产福利在线| 日韩精品亚洲元码| 国产精品女主播视频| 国产一区二区日韩| 欧美极度另类性三渗透| 成人福利网站在线观看11| 欧美在线亚洲一区| 久久精品色欧美aⅴ一区二区| 欧美性猛交xxxx乱大交极品| 久久精品夜夜夜夜夜久久| 97婷婷大伊香蕉精品视频| 成人黄色片在线| 欧美日韩国产页| www.日韩不卡电影av| 久久久www成人免费精品张筱雨| 精品国产乱码久久久久酒店| 亚洲午夜国产成人av电影男同| 国产精品欧美一区二区三区奶水| 国产91在线播放九色快色| 日韩亚洲精品视频| 九九九热精品免费视频观看网站| 国产精品视频yy9099| 日韩中文字幕第一页| 精品国产1区2区| 国产精品丝袜白浆摸在线| 国内精品400部情侣激情| 亚洲最大的av网站| 少妇激情综合网| 亚洲伊人一本大道中文字幕| 日韩av一区二区在线| 日韩黄色在线免费观看| 日韩亚洲在线观看| 欧美激情视频免费观看| 欧美亚洲国产视频| 久久久国产一区| 少妇激情综合网| 日韩欧美中文字幕在线播放| 日韩欧美中文第一页| 亚洲午夜精品久久久久久性色| 色综合导航网站| 一区三区二区视频| 中文字幕在线精品| 国产成人精品网站| 日韩精品中文字幕有码专区| 国产成人97精品免费看片| 国产精品久久久久久五月尺| 91免费的视频在线播放| 久久精品国亚洲| 久久久久99精品久久久久| 欧美国产高跟鞋裸体秀xxxhd| 国产精品美女在线| 国产偷亚洲偷欧美偷精品| 欧美一级黄色网|