thinkphp如何查詢資料庫?
資料庫查詢
ThinkPHP內建了非常靈活的查詢方法,可以快速的進行資料查詢操作。
查詢條件可以用於CURD等任何操作,作為where方法的參數傳入即可。
ThinkPHP可以支援直接使用字串作為查詢條件,但是大多數情況建議使用索引陣列或物件來作為查詢條件,因為會更安全。
查詢方式
一、使用字串作為查詢條件
這是最傳統的方式,但是安全性不高,例如:
$User = M("User"); // 实例化User对象 $User->where('type=1 AND status=1')->select();
最後產生的SQL語句是
SELECT * FROM think_user WHERE type=1 AND status=1
#二、使用陣列作為查詢條件
$User = M("User"); // 实例化User对象 $condition['name'] = 'thinkphp'; $condition['status'] = 1; // 把查询条件传入查询方法 $User->where($condition)->select();
最後產生的SQL語句是
SELECT * FROM think_user WHERE 'name'='thinkphp' AND status=1
如果進行多字段查詢,那麼字段之間的預設邏輯關係是邏輯與AND,但是用下面的規則可以更改預設的邏輯判斷,透過使用_logic 定義查詢邏輯:
$User = M("User"); // 实例化User对象 $condition['name'] = 'thinkphp'; $condition['account'] = 'thinkphp'; $condition['_logic'] = 'OR'; //定义查询逻辑 // 把查询条件传入查询方法 $User->where($condition)->select();
最後產生的SQL語句是
SELECT * FROM think_user WHERE 'name'='thinkphp' OR `account`='thinkphp'
三、使用物件方式來查詢(這裡以stdClass內建物件為例)
#$User = M("User"); // 实例化User对象 // 定义查询条件 $condition = new stdClass(); $condition->name = 'thinkphp'; $condition->status= 1; $User->where($condition)->select();
最後產生的SQL語句和上面一樣
SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1
使用物件方式查詢和使用陣列查詢的效果是相同的,並且是可以互換的,大多數情況下,我們建議採用數組方式更加高效,後面我們會以數組方式為例來講解具體的查詢語言用法。
表達式查詢
上面的查詢條件只是一個簡單的相等判斷,可以使用查詢表達式支援更多的SQL查詢語法,並且可以用於陣列或物件方式的查詢(下面僅以陣列方式為例說明),查詢表達式的使用格式:
$map['字段名'] = array('表达式','查询条件');
表達式不分大小寫,支援的查詢表達式有下列幾種,分別表示意思是:
$map['id'] = array('eq',100); id = 100; $map['id'] = array('egt',100);id >= 100 $map['name'] = array('like','thinkphp%'); name like 'thinkphp%' 模糊查询 $map['a'] =array('like',array('%thinkphp%','%tp'),'OR');$map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND'); (a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')
本文來自ThinkPHP框架技術文章欄位:http://www.php.cn/phpkj/thinkphp /
以上是thinkphp如何查詢資料庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!