在thinkphp中,where方法用于對數(shù)據(jù)庫操作的結(jié)果進行篩選,是模型類的連貫操作方法之一,可以完成包括普通查詢、表達式查詢、快捷查詢、區(qū)間查詢、組合查詢在內(nèi)的查詢操作,語法為“實例化對象->where('條件');”。
本文操作環(huán)境:Windows10系統(tǒng)、ThinkPHP3.2版、Dell G3電腦。
thinkphp中where方法怎么用
where方法可以用于對數(shù)據(jù)庫操作的結(jié)果進行篩選。即SQL查詢語句中的where子句。
今天來給大家講下查詢最常用但也是最復雜的where方法,where方法也屬于模型類的連貫操作方法之一,主要用于查詢和操作條件的設(shè)置。
where方法的用法是ThinkPHP查詢語言的精髓,也是ThinkPHP ORM的重要組成部分和亮點所在,可以完成包括普通查詢、表達式查詢、快捷查詢、區(qū)間查詢、組合查詢在內(nèi)的查詢操作。where方法的參數(shù)支持字符串和數(shù)組,雖然也可以使用對象但并不建議。
字符串條件
使用字符串條件直接查詢和操作,例如:
$User = M("User"); // 實例化User對象 $User->where('type=1 AND status=1')->select();
最后生成的SQL語句是
SELECT * FROM think_user WHERE type=1 AND status=1
如果使用3.1以上版本的話,使用字符串條件的時候,建議配合預處理機制,確保更加安全,例如:
$Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->select();
或者使用:
$Model->where("id=%d and username='%s' and xx='%f'",$id,$username,$xx)->select();
如果$id變量來自用戶提交或者URL地址的話,如果傳入的是非數(shù)字類型,則會強制格式化為數(shù)字格式后進行查詢操作。
字符串預處理格式類型支持指定數(shù)字、字符串等,具體可以參考vsprintf方法的參數(shù)說明。
數(shù)組條件
數(shù)組條件的where用法是ThinkPHP推薦的用法。
普通查詢
最簡單的數(shù)組查詢方式如下:
$User = M("User"); // 實例化User對象 $map['name'] = 'thinkphp'; $map['status'] = 1; // 把查詢條件傳入查詢方法 $User->where($map)->select();
最后生成的SQL語句是
SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1
推薦學習:《PHP視頻教程》