thinkphp的資料寫入操作使用add方法,使用示例如下:
操作完成後如果寫入結果$result資料非法則返回false,如果是自增主鍵 $result則返回主鍵值,否則返回1。$user =m
("user"
);// 例項化user物件
$data
['name']=
'thinkphp'
;
$data
['email']=
;
$result=$user
->
add(
$data
);
讀取資料是指讀取資料表中的一行資料(或者關聯資料),主要通過find
方法完成,例如:
讀取資料集其實就是獲取資料表中的多行記錄(以及關聯資料),使用$user =m
("user"
);// 例項化user物件
// 查詢status值為1name值為think的使用者資料
$data
=$user
->
where
('status=1 and name="thinkphp"'
)->
find
();
select
方法,使用示例:
如果查詢出錯,select的返回值是false,如果查詢結果為空,則返回null,否則返回二維陣列。$user =m
("user"
);// 例項化user物件
// 查詢status值為1的使用者資料 以建立時間排序 返回10條資料
$list
=$user
->
where
('status=1'
)->
order
('create_time'
)->
limit(10
)->
select
();
讀取字段值其實就是獲取資料表中的某個列的多個或者單個資料,最常用的方法是getfield
方法。
示例如下:
預設情況下,當只有乙個欄位的時候,返回滿足條件的資料表中的該字段的第一行的值。$user =m
("user"
);// 例項化user物件
// 獲取id為3的使用者的暱稱
$nickname
=$user
->
where
('id=3'
)->
getfield
('nickname'
);
如果需要返回整個列的資料,可以用:
如果傳入多個字段的話,預設返回乙個關聯陣列:$user
->
getfield
('id'
,true
);// 獲取id陣列
//返回資料格式如array(1,2,3,4,5)一維陣列,其中value就是id列的每行的值
這樣返回的list是乙個陣列,鍵名是使用者的id欄位的值,鍵值是使用者的暱稱nickname。$user =m
("user"
);// 例項化user物件
// 獲取所有使用者的id和暱稱列表
$list
=$user
->
getfield
('id,nickname'
);
//兩個欄位的情況下返回的是array(`id`=>`nickname`)的關聯陣列,以id的值為key,nickname字段值為value
如果傳入多個欄位的名稱,例如:
返回的是乙個二維陣列,類似select方法的返回結果,區別的是這個二維陣列的鍵名是使用者的id(準確的說是getfield方法的第乙個欄位名)。$list
=$user
->
getfield
('id,nickname,email'
);
//返回的陣列格式是array(`id`=>array(`id`=>value,`nickname`=>value,`email`=>value))是乙個二維陣列,key還是id欄位的值,但value是整行的array陣列,類似於select()方法的結果遍歷將id的值設為陣列key
如果我們傳入乙個字串分隔符:
$list
=$user
->
getfield
('id,nickname,email'
,':'
);
那麼返回的結果就是乙個陣列,鍵名是使用者id,鍵值是nickname:email
的輸出字串。
getfield方法還可以支援限制數量,例如:
可以配合使用order方法使用。更多的查詢方法可以參考查詢語言章節。$this
->
getfield
('id,name',5
);// 限制返回5條記錄
$this
->
getfield
('id',3
);// 獲取id陣列 限制3條記錄
注:關於
select
() 和
getfield()
的返回值問題,select完全不變,getfield則是會根據查詢的
不同字段個數
而導致返回值的變化。
乙個為一維,兩個
上則為`id`=>`nickname`
形式的關聯陣列
,三個及以上
是則為以第乙個字段值為key的二維陣列
`id`=>array(`id`=>value,`nickname`=>value,`email`=>value)
有返回值和無返回值函式
前面在定義函式時,有些函式使用了return語句,有些函式沒有使用return語句,使用return語句與不使用return語句有什麼區別呢?由前面的章節我們知道,若定義函式時沒有使用return語句,則預設返回乙個none。要返回乙個none,可以只寫乙個return,但要返回具體的數值,就需要在...
返回值優化
通過傳值方式返回要建立新物件時,應注意使用的形式,例如在operator return integer left.l right.l 咋看起來這像是乙個 對乙個建構函式的呼叫 其實並非如此。這是臨時物件語法,它是在說 建立乙個臨時integer物件並返回它 據此我們可能認為如果建立乙個有名字的區域性...
返回值優化
返回值優化,是一種屬於編譯器的技術,它通過轉換源 和物件的建立來加快源 的執行速度。rvo return value optimization。class complex 複數 complex const complex a real a.real imag a.imag complex opera...