Thinkphp中的Think\Model類提供了數(shù)據(jù)庫的基本CURD(Create袄简、Update钩骇、Read及Delete),通過該類可以很便捷的進行操作郑象。Model類及擴展類主要的方法有:
Create操作:create()(非鏈式) 贡这、add()、addAll()支持的鏈式操作有:table 厂榛、data盖矫、field 、relation 击奶、validate辈双、auto 、filter柜砾、scope 湃望、bind 、token 、comment
Update操作save()喜爷、setField()冗疮、setInc()、setDec()支持的鏈式操作有:where檩帐、table 术幔、alias、field湃密、order诅挑、lock 、relation 泛源、scope 拔妥、bind 、comment
Read操作find()达箍、select()没龙、getField()、Count 缎玫、Max硬纤、Min 、Avg 赃磨、Sum支持的鏈式操作有:where 筝家、table 、alias 邻辉、field 溪王、order、group 值骇、having 莹菱、join 、union 雷客、distinct芒珠、lock、cache 搅裙、relation 皱卓、result 、scope 部逮、bind 娜汁、comment
Delete操作delete()支持的鏈式操作有:where 、table 兄朋、alias 掐禁、order、lock 、relation 傅事、scope 缕允、bind 、comment
這些方法的可能的返回值有false/true/一位數(shù)組/二維數(shù)組/numeric(數(shù)字)/null/類本身的實例蹭越,現(xiàn)在就總結(jié)如下:
1障本、鏈式操作:
所以鏈式操作都返回Model類的實例,即可以使用該返回值繼續(xù)調(diào)用實例方法响鹃。
$User=M("User");
$U1=$User->$where("id = 1");//$U1可以繼續(xù)調(diào)用其他方法驾霜。
$result=$U1->select();
//-------一般情況下沒有必要這樣,下面一句代碼即可實現(xiàn)
$result=M("User")->$where("id = 1")->select();
2买置、Create操作
create 返回值:若發(fā)生錯誤粪糙,返回false;
成功則返回創(chuàng)建的數(shù)據(jù)create為非鏈式操作忿项,返回值為可能為布爾值蓉冈,所以操作時要進行嚴格判斷:
$User = M("User");
if($User->create()){
//進行更多操作
}
add 返回值,addAll 返回值成功:如果主鍵是自動增長型倦卖,返回值為新增記錄Id值(addAll為最大值)洒擦,否則返回true;
發(fā)生錯誤返回 false怕膛;
3、update操作
save 返回值(setField秦踪、setInc褐捻、setDec最后調(diào)用的都是save方法,所以返回值與save一致):save 返回值是影響的記錄數(shù)(有可能為0)椅邓,更新出錯返回false柠逞,因此一定要用恒等來判斷是否更新失敗。
4景馁、read操作
find 返回值如果查詢出錯板壮,find的返回值為false如果查詢結(jié)果為空返回NULL,查詢成功則返回一個關(guān)聯(lián)數(shù)組(鍵值是字段名或者別名)合住。
select 返回值如果查詢出錯绰精,select的返回值是false,如果查詢結(jié)果為空透葛,則返回NULL笨使,否則返回二維數(shù)組。
getField 返回值如果查詢出錯僚害,getField的返回值為false
查詢成功:getField($field):$field為一個字段,返回數(shù)據(jù)庫中該字段的第一行的值
getField($field,true):$field為一個字段,返回包含該字段的一維數(shù)組
getField($fields):$fields為兩個字段(以“,”隔開)硫椰,返回array($field1=>$field2)的數(shù)組;若$field為多個字段,返回類似select的多維數(shù)組,鍵名為field1。
getField($fields,”:”):$field為多個字段,返回類似array($field1=>”$field2:$field3”)的數(shù)組
Count 靶草、Max蹄胰、Min 、Avg 奕翔、Sum返回值如果查詢出錯烤送,返回值為false查詢成功,則返回對應的值
5糠悯、Delete操作
delete 返回值:成功則返回true帮坚,查詢錯誤則返回false