PHP課件:第47講 ThinkPHP 模型操作-CURD_第1頁(yè)
PHP課件:第47講 ThinkPHP 模型操作-CURD_第2頁(yè)
PHP課件:第47講 ThinkPHP 模型操作-CURD_第3頁(yè)
PHP課件:第47講 ThinkPHP 模型操作-CURD_第4頁(yè)
PHP課件:第47講 ThinkPHP 模型操作-CURD_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

(第47講)ThinkPHP模型操作-CURD學(xué)習(xí)目標(biāo)①ADD($DATA)②SELECT($DATA)③SAVE($DATA)④DELETE($DATA)1 數(shù)據(jù)添加ADD方法

add寫入(新增)數(shù)據(jù)到數(shù)據(jù)庫(kù)用法add($data='',$options=array(),$replace=false)參數(shù):data(可選):要新增的數(shù)據(jù),支持?jǐn)?shù)組和對(duì)象,如果留空取當(dāng)前數(shù)據(jù)對(duì)象options(可選):操作表達(dá)式,通常由連貫操作完成,默認(rèn)為空數(shù)組replace(可選):是否允許寫入時(shí)更新,默認(rèn)為false(個(gè)別數(shù)據(jù)庫(kù)支持)返回值 :如果數(shù)據(jù)非法或者查詢錯(cuò)誤則返回false 如果是自增主鍵則返回主鍵值,否則返回1

相關(guān)方法通常和data、create方法配合使用(第47講)ThinkPHP模型操作-CURD1 數(shù)據(jù)添加ADD方法

addAll方法注意返回值為插入數(shù)據(jù)庫(kù)的第一條數(shù)據(jù)ID

$list=array( array('usernames'=>'11',), array('usernames'=>'22',), array('usernames'=>'33',), array('usernames'=>'44',), ); $type=$user->addAll($list); dump($type); echo$user->getLastSql();(第47講)ThinkPHP模型操作-CURD2 數(shù)據(jù)查詢方法-select

用法select($options=array())返回值查詢錯(cuò)誤返回false查詢結(jié)果為空返回null查詢成功返回查詢的結(jié)果集(二維索引數(shù)組)相關(guān)方法通常配合連貫操作where、field、order、limit、join等一起使用使用示例:$User=M("User");//實(shí)例化User對(duì)象//查找status值為1的用戶數(shù)據(jù)以創(chuàng)建時(shí)間排序返回10條數(shù)據(jù)$list=$User->where('status=1')->order('create_time')->limit(10)->select();Select方法配合連貫操作方法可以完成復(fù)雜的數(shù)據(jù)查詢。而最復(fù)雜的連貫方法應(yīng)該是where方法的使用,因?yàn)檫@部分涉及的內(nèi)容較多,(第47講)ThinkPHP模型操作-CURD2 數(shù)據(jù)查詢方法find

find查詢數(shù)據(jù)用法find($options=array())返回值如果查詢錯(cuò)誤返回false如果查詢結(jié)果為空返回null如果查詢成功返回查詢的結(jié)果(索引數(shù)組)相關(guān)方法通常配合連貫操作where、field、order、join等一起使用讀取數(shù)據(jù)的操作其實(shí)和數(shù)據(jù)集的類似,select可用的所有連貫操作方法也都可以用于find方法,區(qū)別在于find方法最多只會(huì)返回一條記錄,因此limit方法對(duì)于find查詢操作是無(wú)效的。下面是一些查詢的例子:$User=M("User");//實(shí)例化User對(duì)象//查找status值為1name值為think的用戶數(shù)據(jù)$User->find();即使?jié)M足條件的數(shù)據(jù)不止一條,find方法也只會(huì)返回第一條記錄。(第47講)ThinkPHP模型操作-CURD2 數(shù)據(jù)查詢方法getField

getField查詢某個(gè)字段的值用法getField($field,$sepa=null)參數(shù)field(必須):要獲取的字段字符串(多個(gè)用逗號(hào)分隔)sepa(可選):字段數(shù)據(jù)間隔符號(hào),如果是NULL返回?cái)?shù)組為數(shù)組。默認(rèn)為null。返回值如果查詢結(jié)果為空返回null如果field是一個(gè)字段則返回該字段的值如果field是多個(gè)字段,返回?cái)?shù)組。數(shù)組的索引是第一個(gè)字段的值,sepa為null則返回二維數(shù)組。相關(guān)方法通常配合連貫操作where、limit、order等一起使用示例如下:$User=M("User");//實(shí)例化User對(duì)象//獲取ID為3的用戶的昵稱$nickname=$User->where('id=3')->getField('nickname');當(dāng)只有一個(gè)字段的時(shí)候,默認(rèn)返回一個(gè)值。如果需要返回?cái)?shù)組,可以用:$this->getField('id',true);//獲取id數(shù)組(第47講)ThinkPHP模型操作-CURD2 數(shù)據(jù)查詢方法getField

如果傳入多個(gè)字段的話,默認(rèn)返回一個(gè)關(guān)聯(lián)數(shù)組:$User=M("User");//實(shí)例化User對(duì)象//獲取所有用戶的ID和昵稱列表$list=$User->getField('id,nickname');返回的list是一個(gè)數(shù)組,鍵名是用戶的id,鍵值是用戶的昵稱nickname。如果傳入多個(gè)字段的名稱,例如:$list=$User->getField('id,nickname,email');返回的是一個(gè)二維數(shù)組,類似select方法的返回結(jié)果,區(qū)別的是這個(gè)二維數(shù)組的鍵名是用戶的id(準(zhǔn)確的說(shuō)是getField方法的第一個(gè)字段名)。如果我們傳入一個(gè)字符串分隔符:$list=$User->getField('id,nickname,email',':');那么返回的結(jié)果就是一個(gè)數(shù)組,鍵名是用戶id,鍵值是nickname:email的輸出字符串。getField方法的sepa參數(shù)還可以支持限制數(shù)量,例如:$this->getField('id,name',5);//限制返回5條記錄$this->getField('id',3);//獲取id數(shù)組限制3條記錄可以配合使用order方法使用。(第47講)ThinkPHP模型操作-CURD3 數(shù)據(jù)更新方法save

更新(Update)在ThinkPHP中使用save方法更新數(shù)據(jù)庫(kù),并且也支持連貫操作的使用。save更新數(shù)據(jù)到數(shù)據(jù)庫(kù)用法save($data='',$options=array())參數(shù)data:要保存的數(shù)據(jù),如果為空,則取當(dāng)前的數(shù)據(jù)對(duì)象。返回值如果查詢錯(cuò)誤或者數(shù)據(jù)非法返回false如果更新成功返回影響的記錄數(shù)相關(guān)方法通常配合連貫操作where、field、order等一起使用$User=M("User");//實(shí)例化User對(duì)象//要修改的數(shù)據(jù)對(duì)象屬性賦值$data['name']='ThinkPHP';$data['email']='ThinkPHP@';$User->where('id=5')->save($data);//根據(jù)條件保存修改的數(shù)據(jù)為了保證數(shù)據(jù)庫(kù)的安全,避免出錯(cuò)更新整個(gè)數(shù)據(jù)表,如果沒有任何更新條件,數(shù)據(jù)對(duì)象本身也不包含主鍵字段的話,save方法不會(huì)更新任何數(shù)據(jù)庫(kù)的記錄。$User->save($data);不會(huì)更新任何數(shù)據(jù)庫(kù)(第47講)ThinkPHP模型操作-CURD3 數(shù)據(jù)更新方法save

$User=M("User");//實(shí)例化User對(duì)象//要修改的數(shù)據(jù)對(duì)象屬性賦值$data['id']=5;$data['name']='ThinkPHP';$data['email']='ThinkPHP@';$User->save($data);//根據(jù)條件保存修改的數(shù)據(jù)如果id是數(shù)據(jù)表的主鍵的話,系統(tǒng)自動(dòng)會(huì)把主鍵的值作為更新條件來(lái)更新其他字段的值。還有一種方法是通過(guò)create或者data方法創(chuàng)建要更新的數(shù)據(jù)對(duì)象,然后進(jìn)行保存操作,這樣save方法的參數(shù)可以不需要傳入。$User=M("User");//實(shí)例化User對(duì)象//要修改的數(shù)據(jù)對(duì)象屬性賦值$data['name']='ThinkPHP';$data['email']='ThinkPHP@';$User->where('id=5')->data($data)->save();//根據(jù)條件保存修改的數(shù)據(jù)使用create方法的例子:$User=M("User");//實(shí)例化User對(duì)象//根據(jù)表單提交的POST數(shù)據(jù)創(chuàng)建數(shù)據(jù)對(duì)象$User->create();$User->save();//根據(jù)條件保存修改的數(shù)據(jù)上面的情況,表單中必須包含一個(gè)以主鍵為名稱的隱藏域,才能完成保存操作。(第47講)ThinkPHP模型操作-CURD3 數(shù)據(jù)更新方法字段更新setFiled

setField更新某個(gè)字段的值用法setField($field,$value='')返回值如果查詢錯(cuò)誤返回false如果更新成功返回影響的記錄數(shù)

相關(guān)方法必須配合連貫操作where一起使用使用示例:$User=M("User");//實(shí)例化User對(duì)象//更改用戶的name值$User->where('id=5')->setField('name','ThinkPHP');setField方法支持同時(shí)更新多個(gè)字段,只需要傳入數(shù)組即可,例如:$User=M("User");//實(shí)例化User對(duì)象//更改用戶的name和email的值$data=array('name'=>'ThinkPHP','email'=>'ThinkPHP@');$User->where('id=5')->setField($data);(第47講)ThinkPHP模型操作-CURD3 數(shù)據(jù)更新方法setInc/setDec字段增長(zhǎng)/字段減少

用法setInc($field,$step=1)字段值增長(zhǎng)setDec($field,$step=1)字段值減少

參數(shù)field:要更新的字段名。step:增長(zhǎng)或者減少的數(shù)值,默認(rèn)為1。如果更新成功返回影響的記錄數(shù),如果查詢錯(cuò)誤返回false

相關(guān)方法必須配合連貫操作where一起使用$User=M("User");//實(shí)例化User對(duì)象$User->where('id=5')->setInc('score',3);//用戶的積分加3$User->where('id=5')->setInc('score');//用戶的積分加1$User->where('id=5')->setDec('score',5);//用戶的積分減5$User->where('id=5')->setDec('score');//用戶的積分減1(第47講)ThinkPHP模型操作-CURD4 數(shù)據(jù)刪除方法delete

在ThinkPHP中使用delete方法刪除數(shù)據(jù)庫(kù)中的記錄。用法delete($options=array())返回值如果查詢錯(cuò)誤返回false,如果刪除成功返回影響的記錄數(shù)

相關(guān)方法通常配合連貫操作where、field、order等一起使用示例如下:$User=M("User");//實(shí)例化User對(duì)象$User->where('id=5')->delete();//刪除id為5的用戶數(shù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論