ThinkPHP where方法:設置查詢或操做條件


ThinkPHP where()

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 表達式》。

相關文章
相關標籤/搜索