程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> ThinkPHP 之 curd 操作

ThinkPHP 之 curd 操作

編輯:關於PHP編程

ThinkPHP提供了靈活和方便的數據操作方法,不僅實現了對數據庫操作的四大基本操作(CURD):創建、讀取、更新和刪除的實現,還內置了很多實用的數據操作方法,提供了ActiveRecords模式的最佳體驗。


新建記錄 


PHP 代碼


1.  $User->find(2);  


2.  $User->delete(); // 刪除查找到的記錄  


3.  $User->delete('5,6'); // 刪除主鍵為5、6的數據  


4.  $User->deleteAll(); // 刪除查詢出來的所有數據 


PHP 代碼


1.  // 實例化一個User模型對象  


2.   


3.  $User =  new  UserModel();  


4.  // 然後給數據對象賦值  


5.  $User->name = 'ThinkPHP';  


6.  $User->email = '[email protected]';  


7.  // 然後就可以保存新建的User對象了  


8.  $User->add();  


9.  // 如果需要鎖實例化模型對象的時候傳入數據,可以使用  


10.            $data['name'] = 'ThinkPHP';  


11.            $data['email'] = '[email protected]';  


12.            $User =  new  UserModel($data);  


13.            $User->add();  


14.            // 或者直接在add方法傳入要新建的數據  


15.            $data['name'] = 'ThinkPHP';  


16.            $data['email'] = '[email protected]';  


17.            $User =  new  UserModel();  


18.            $User->add($data);  


19.             


20.             


 


一般情況下,應用中的數據對象不太可能通過手動賦值的方式寫入,而是有個數據對象的創建過程。ThinkPHP提供了一個create方法來創建數據對象,然後進行其它的新增或者編輯操作。


PHP 代碼


1.  $User = D("User");  


2.  $User->create(); // 創建User數據對象,默認通過表單提交的數據進行創建  


3.  $User->add(); // 新增表單提交的數據 


Create方法支持從其它方式創建數據對象,例如,從其它的數據對象,或者數組等


PHP 代碼


1.  $data['name'] = 'ThinkPHP';  


2.  $data['email'] = '[email protected]';  


3.  $User->create($data);  


4.  // 從User數據對象創建新的Member數據對象  


5.  $Member = D("Member");  


6.  $Member->create($User); 


 


支持新增多條記錄


PHP 代碼


1.  $User =  new  UserModel();  


2.  $data[0]['name'] = 'ThinkPHP';  


3.  $data[0]['email'] = '[email protected]';  


4.  $data[1]['name'] = '流年';  


5.  $data[1]['email'] = '[email protected]';  


6.  $User->addAll($data); 


在MySql數據庫下面,會自動使用一條SQL語句實現多數據的插入。


查詢記錄


讀取數據庫的記錄我覺得是數據庫操作中的最有意思的一件事情了,寫過文本數據庫的人都知道,保存和刪除數據不難(無非是規范和效率問題),難在可以通過各種方式來查找需要的數據。ThinkPHP通過各種努力,讓數據庫的查詢操作變得輕而易舉,也讓ThinkPHP變得富有內涵。


ThinkPHP有一個非常明確的約定,就是單個數據查詢和多個數據查詢的方法是分開的,或者你會認為有時候自己也不知道要查詢的數據是單個還是多個,但是有一點是明確的,你需要的是返回一個數據還是希望返回的是一個數據集。因為對兩種類型的返回數據的操作方式是截然不同的,無論何種方式的返回,我們都可以直接在模型對象裡面操作,當然也一樣可以作為數據傳遞給你需要的變量。


先舉個最簡單的例子,假如我們要查詢主鍵為8的某個用戶記錄,我們可以使用下面的一些方法:


PHP 代碼


1.  $User->find(8); 


這個作為查詢語言來說是最為直觀的,如果查詢成功,查詢的結果直接保存在當前的數據對象中,在進行下一次查詢操作之前,我們都可以提取,例如獲取查詢的結果數據:


PHP 代碼


1.  $name = $User->name;  


2.  $email = $User->email; 


遍歷查詢到的數據對象屬性


PHP 代碼


1.  foreach  ($User  as  $key=>$val){  


2.    echo($key.':'.$val);  


3.  }  


// 或者進行相關的數據更改和保存操作


也可以用變量保存下來以便隨時使用。


PHP 代碼


1.  $user = $User->find(8); 


對於上面的查詢條件,我們還可以使用getById來完成相同的查詢


PHP 代碼


1.    $User->getById(8); 


需要注意的是,對於find方法來說,即使查詢結果有多條記錄,也只會返回符合條件的第一條記錄,如果要返回符合要求的所有記錄,請使用findAll方法。


PHP 代碼


1.    // 查詢主鍵為1、3、8的記錄集   


2.    $User->findAll('1,3,8');   


3.    // 遍歷數據列表  


4.    foreach  ($User  as  $vo){  


5.    dump($vo->name);  


6.    }  


更多的查詢操作請參考後面章節的內容。


       


更新記錄


了解了查詢記錄後,更新操作就顯得非常簡單了。


// 還可以使用下面的方式更新


PHP 代碼


1.  $User->find(1); // 查找主鍵為1的數據  


2.  $User->name = 'TOPThink'; // 修改數據對象  


3.  $User->save(); // 保存當前數據對象  


4.  $User->score = '(score+1)'; // 對用戶的積分加1  


5.  $User->save(); 


如果不是使用數據對象的方式來保存,可以傳入要保存的數據和條件


PHP 代碼


1.  $data['id'] = 1;  


2.  $data['name'] = 'TopThink';  


3.  $User->save($data); 


除了save方法外,你還可以使用setField方法來更新特定字段的值,例如:


PHP 代碼


1.  $User->setField('name','TopThink','id=1'); 


同樣可以支持對字段的操作


PHP 代碼


1.  $User->setField('score','(score+1)','id=1');  


2.  // 或者改成下面的  


3.  $User->setInc('score','id=1'); 


刪除記錄


 如果你的主鍵是自動增長類型,不需要傳入主鍵的值就可以新建數據,並且如果插入數據成功的話,Add方法的返回值就是最新插入的主鍵值,可以直接獲取。

 


echo $user->getLastSql();

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved