thinkphp?

上一篇介紹了資料庫的新增和更新,這裡介紹一下資料庫的查詢和刪除操作

建立專案以及連線資料庫

建立一個thinkphp 專案tp,如下圖,其中index.php為入口檔案,App為專案資料夾:

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

在App/Conf下的config.php中,配置資料庫連線,如下:

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

在資料庫中建立表qq_game,結構如下圖:

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

當前資料庫中的資訊如下:

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

刪除

刪除的語法如下:

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

在App/Lib/Action下的IndexAction.class.php中,建立函式deleteGame,將資料從資料表刪除,如下:

1、已知id值刪除資料

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

2、有多個where條件,用陣列表示,進行刪除,如下:

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

3、用order和limit來限制要刪除的記錄的個數;

(1) 先向表中加入幾行資料 ,如下:

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

(2)按id排序,刪除所有grade=3的前3行資料;

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

查詢

一、查詢的基本方法select,如下:

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

在控制器IndexAction.class.php中,新建函式searchGame,如下:

1、查詢所有資料資訊,當前資料表中資料共7條

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

2、查詢所有grade=1的值,按id進行排序,選擇3個

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

二、查詢的基本方法find,語法如下,注意: find方法只會返回一條記錄。

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

1、無論滿足條件的select,有多少記錄,find方法只返回一條記錄。

如下,是select和find方法的SQL語句,可以看出find方法中有LIMIT 1,所以find方法只顯示一條記錄且不能和LIMIR一起使用

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

2、因為find方法只能返回一條記錄,所以最好用在已知主鍵值ID,查詢結果,如下:

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

三、查詢某些欄位的時候,需要使用getField方法,具體語法如下:

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

1、查詢一個欄位時,可以直接輸出,如下:

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

2、專案過程中,經常出現獲取某一列的值,可使用true,進行操作,獲取結果陣列,如下,獲取name列的所有值:

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

3、如果傳入多個欄位的話,預設返回一個關聯陣列;

若是僅查詢主鍵值和另一個值,則主鍵值會作為鍵名,而另一個值作為鍵值,如下:

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

4、若是在方法中傳入一個字串分隔符【:或 / 或 - 或= 等等】,則返回的結果是一維陣列,鍵名是主鍵值ID,鍵值是 欄位:欄位:欄位型別的字串。

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

5、getField方法的sepa引數還可以支援限制數量,如下:

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

thinkphp 3.1.3 連線資料庫及其查詢和刪除操作

注意事項

find方法只能返回一條記錄

相關問題答案