摘要: ThinkPHP中的Think\Model類提供了數據庫的基本CURD(Create、Update、Read及Delete),通過該類可以很便捷的進行操作。Model類及擴展類主要的方法有:Create操作: create()(非鏈式) 、add()、addAll() 支持的鏈式操作有: table
Thinkphp中的Think\Model類提供了數據庫的基本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/一位數組/二維數組/numeric(數字)/null/類本身的實例,現在就總結如下:
1、鏈式操作:
所以鏈式操作都返回Model類的實例,即可以使用該返回值繼續調用實例方法。
$User=M("User");
$U1=$User->$where("id = 1");//$U1可以繼續調用其他方法。
$result=$U1->select();
//-------一般情況下沒有必要這樣,下面一句代碼即可實現
$result=M("User")->$where("id = 1")->select();
2、Create操作
- create 返回值:
- 若發生錯誤,返回false;
- 成功則返回創建的數據
create為非鏈式操作,返回值為可能為布爾值,所以操作時要進行嚴格判斷:$User = M("User");
if($User->create()){
//進行更多操作
}
- add 返回值,addAll 返回值
- 成功:如果主鍵是自動增長型,返回值為新增記錄Id值(addAll為最大值),否則返回true;
- 發生錯誤返回 false;
3、update操作
- save 返回值(setField、setInc、setDec最后調用的都是save方法,所以返回值與save一致):
save 返回值是影響的記錄數(有可能為0),更新出錯返回false,因此一定要用恆等來判斷是否更新失敗。
4、read操作
- find 返回值
如果查詢出錯,find的返回值為false
如果查詢結果為空返回NULL,查詢成功則返回一個關聯數組(鍵值是字段名或者別名)。 - select 返回值
如果查詢出錯,select的返回值是false,
如果查詢結果為空,則返回NULL,否則返回二維數組。 - getField 返回值
- 如果查詢出錯,getField的返回值為false
- 查詢成功:
- getField($field):$field為一個字段,返回數據庫中該字段的第一行的值
- getField($field,true):$field為一個字段,返回包含該字段的一維數組
- getField($fields):$fields為兩個字段(以“,”隔開),返回array($field1=>$field2)的數組;若$field為多個字段,返回類似select的多維數組,鍵名為field1。
- getField($fields,”:”):$field為多個字段,返回類似array($field1=>”$field2:$field3”)的數組
- Count 、Max、Min 、Avg 、Sum返回值
如果查詢出錯,返回值為false
查詢成功,則返回對應的值
5、Delete操作
- delete 返回值:成功則返回true,查詢錯誤則返回false