ThinkPHP where()方法是 Model 類別內建方法,用於設定資料庫查詢或更新、刪除等操作條件。
where 方法支援以字串、陣列和物件方式來設定條件,該方法不能獨立使用,必須與 select()、find()、delete() 等資料運算方法搭配使用。
字串方式條件即以字串的方式將條件作為where() 方法的參數,範例:
$Dao = M("User"); $List = $Dao->where('uid<10 AND email="Jack@163.com"')->find();
實際執行的SQL 為:
SELECT * FROM user WHERE uid<10 AND email="Jack@163.com" LIMIT 1
字串方式設定的條件即為實際SQL 執行的條件,也是最接近原生SQL 的方式,ThinkPHP 不會對條件做任何(類型上的)檢查。
在大多數情況下建議使用索引陣列或物件來作為查詢條件,因為這樣會比較安全,詳細請參閱:《ThinkPHP 類型偵測》。
使用陣列方式的 where 條件範例:
$Dao = M("User"); // 构建查询数组 $condition['uid'] = array('elt',10); $condition['email'] = "Jack@163.com"; $List = $Dao->where($condition)->find();
這個範例跟上面使用字串方式的範例執行效果是一樣的。
where 方法也可以使用物件來設定查詢或操作條件,可以使用任何物件。以 stdClass 內建物件為例:
$Dao = M("User"); // 定义查询条件 $condition = new stdClass(); $condition->uid = array('elt',10); $condition->email = "Jack@163.com"; $List = $Dao->where($condition)->find();
使用物件方式和使用陣列方式的條件效果是相同的,並且是可以互換的。
ThinkPHP where 使用陣列或物件方式的時候,要用到 ThinkPHP 特有的查詢表達式,具體見《ThinkPHP 表達式》。
更多ThinkPHP相關技術文章,請造訪ThinkPHP教學欄位進行學習!
以上是ThinkPHP 其中方法:設定查詢或操作條件的詳細內容。更多資訊請關注PHP中文網其他相關文章!