ThinkPHP 查詢數據主要提供如下幾類查詢:php
select() 是 ThinkPHP 中最經常使用的普通查詢方法,獲得的是一個二維數組。findAll() 爲 select() 方法的別名,並建議使用 select()。html
下面的例子將 user 表的全部數據讀取出來並顯示:thinkphp
public function read(){ $Dao = M("User"); // 查詢數據 $list = $Dao->select(); //dump($list); // 用 dump() 能夠在調試階段查看數據是否已讀取 // 模板變量賦值 $this->assign("list", $list); // 輸出模板 $this->display(); }
假設上面的例子對應的 class 文件爲 Lib/Action/IndexAction.class.php ,那麼對應的模板文件爲 Tpl/default/Index/read.html。數組
模板文件用於顯示剛纔讀取的 User 表的數據。在學習階段,要不想使用模板,也能夠直接使用 foreach 語法在 read() 操做內直接顯示讀取的數據。下面是模板相應的代碼片斷,咱們將讀取的數據在一個表格中顯示出來:ide
<table border="1"> <tr> <th width="10%">ID</th> <th width="30%">用戶名</th> <th width="30%">電子郵件</th> <th>註冊時間</th> </tr> <volist name="list" id="vo"> <tr> <td align="center">{$vo['uid']}</td> <td>{$vo['username']}</td> <td>{$vo['email']}</td> <td>{$vo['regdate']|date='Y-m-d H:i',###}</td> </tr> </volist> </table>
要了解更多關於 ThinkPHP模板 的知識,請參閱:《ThinkPHP 模板》。學習
select() 方法默認是查詢全部字段的數據,若是要查詢某個或某些字段,就須要使用 filed() 方法。ui
filed() 是屬於 ThinkPHP 連貫操做 中的一個方法,如在上面的例子中,只查詢用戶名和電子郵件地址,則查詢方法對應更改成:this
$list = $Dao->field('username,email')->select();
使用 ThinkPHP 連貫操做 能夠很方便的對數據查詢使用查詢條件。下面是一些簡單的查詢條件的例子。調試
…… // 構造查詢條件 $condition['username'] = 'Admin'; // 查詢數據 $list = $Dao->where($condition)->select(); ……
上述查詢的就是 username='Admin' 這個條件的數據。關於 ThinkPHP where 條件更詳細資料,請參閱《ThinkPHP Where 條件》。code
在查詢中使用 ORDER BY 對數據進行排序:
…… // 查詢數據 $list = $Dao->order('uid DESC')->select(); ……
這個例子就是數據按照 ORDER BY uid DESC 進行查詢,而 order() 方法中的參數意義跟 SQL 語句中的意義徹底一致。
在查詢中使用 LIMIT 限定數據返回的記錄數:
…… // 查詢數據 $list = $Dao->limit('4,5')->select(); ……
這個例子就是將第 5-10 條記錄取出,limit() 方法內的參數意義跟 SQL 語句中的 LIMIT 徹底一致。
ThinkPHP 中容許將數據對象中的各個方法寫在一塊兒操做,如:
$list = $Dao->order('uid DESC')->limit('4,5')->select();