在thinkphp中,where方法用于對數據庫操作的結果進行篩選,是模型類的連貫操作方法之一,可以完成包括普通查詢、表達式查詢、快捷查詢、區間查詢、組合查詢在內的查詢操作,語法為“實例化對象->where(‘條件’);”。
本文操作環境:Windows10系統、ThinkPHP6版、Dell G3電腦。
thinkphp中where方法怎么用
where方法可以用于對數據庫操作的結果進行篩選。即SQL查詢語句中的where子句。
今天來給大家講下查詢最常用但也是最復雜的where方法,where方法也屬于模型類的連貫操作方法之一,主要用于查詢和操作條件的設置。
where方法的用法是ThinkPHP查詢語言的精髓,也是ThinkPHP ORM的重要組成部分和亮點所在,可以完成包括普通查詢、表達式查詢、快捷查詢、區間查詢、組合查詢在內的查詢操作。where方法的參數支持字符串和數組,雖然也可以使用對象但并不建議。
立即學習“PHP免費學習筆記(深入)”;
字符串條件
使用字符串條件直接查詢和操作,例如:
$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地址的話,如果傳入的是非數字類型,則會強制格式化為數字格式后進行查詢操作。
字符串預處理格式類型支持指定數字、字符串等,具體可以參考vsprintf方法的參數說明。
數組條件
數組條件的where用法是ThinkPHP推薦的用法。
普通查詢
最簡單的數組查詢方式如下:
$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視頻教程》
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦