ThinkPHP快速入門3-連貫操作,變數
阿新 • • 發佈:2019-02-04
連貫操作
例:假如我們現在要查詢一個User表的滿足狀態為1的前10條記錄,並希望按照使用者的建立時間排序 ,程式碼如下:
$User->where('status=1')->order('create_time')->limit(10)->select();
注:
1)除了select方法必須放到最後一個外(因為select方法並不是連貫操作方法),連貫操作的方法呼叫順序沒有先後。
2)連貫操作的結果不會帶入以後的查詢
用法
WHERE:用於查詢或者更新條件的定義
TABLE:定義要操作的資料表名稱,動態改變當前操作的資料表名稱,需要寫資料表的全名,包含字首,可以使用別名和跨庫操作(一般情況下,無需呼叫)
DATA
FIELD: 用於定義要查詢的欄位
1)如果需要顯式的傳入所有的欄位
$Model->field(true)->select();
2)欄位排除方式
$Model->field('status',true)->select();
表示獲取除了status之外的所有欄位
ORDER:用於對操作結果排序
LIMIT:用於定義要查詢的結果限制(支援所有的資料庫型別)
PAGE:用於定義要查詢的資料分頁
GROUP:用於資料庫的group查詢支援
HAVING:用於資料庫的having查詢支援
JOIN
UNION:用於資料庫的union查詢支援。每個union方法相當於一個獨立的SELECT語句。
DISTINCT:查詢資料的時候進行唯一過濾
LOCK:用於查詢或者寫入鎖定
VALIDATE:用於資料的自動驗證
AUTO:用於資料自動完成
SCOPE:用於模型的命名範圍
FILTER:用於資料的安全過濾
變數
獲取變數
I('變數型別.變數名/修飾符',['預設值'],['過濾方法'],['額外資料來源'])
注意:
1. 變數型別不區分大小寫。
2. 變數名則嚴格區分大小寫。
3. 預設值和過濾方法均屬於可選引數
例:
I('post.name','','htmlspecialchars'); // 採用htmlspecialchars方法對$_POST['name'] 進行過濾,如果不存在則返回空字串
I('session.user_id',0); // 獲取$_SESSION['user_id'] 如果不存在則預設為0
I('cookie.'); // 獲取整個 $_COOKIE 陣列
I('server.REQUEST_METHOD'); // 獲取 $_SERVER['REQUEST_METHOD']
param變數型別是框架特有的支援自動判斷當前請求型別的變數獲取方式
變數過濾
如果你沒有在呼叫I函式的時候指定過濾方法的話,系統會採用預設的過濾機制(由DEFAULT_FILTER配置)
變數修飾符
I('變數型別.變數名/修飾符');