ThinkPHP where()方法是 Model 類內置方法,用於設置數據庫查詢或者更新、刪除等操做條件。php
where 方法支持以字符串、數組和對象方式來設置條件,該方法不能獨立使用,必須與 select()、find()、delete() 等數據操做方法搭配使用。html
字符串方式條件即以字符串的方式將條件做爲 where() 方法的參數,例子:thinkphp
$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 不會對條件作任何(類型上的)檢查。express
在大多數狀況下推薦使用索引數組或者對象來做爲查詢條件,由於這樣會更加安全,詳細參見:《ThinkPHP 類型檢測》。數組
使用數組方式的 where 條件例子:安全
$Dao = M("User"); // 構建查詢數組 $condition['uid'] = array('elt',10); $condition['email'] = "Jack@163.com"; $List = $Dao->where($condition)->find();
這個例子跟上面使用字符串方式的例子執行效果是同樣的。ide
where 方法也可使用對象來設置查詢或操做條件,可使用任何對象。以 stdClass 內置對象爲例:ui
$Dao = M("User"); // 定義查詢條件 $condition = new stdClass(); $condition->uid = array('elt',10); $condition->email = "Jack@163.com"; $List = $Dao->where($condition)->find();
使用對象方式和使用數組方式的條件效果是相同的,而且是能夠互換的。code
ThinkPHP where 在使用數組或對象方式的時候,要用到 ThinkPHP 特有的查詢表達式,具體見《ThinkPHP 表達式》。