首頁  >  文章  >  php框架  >  thinkphp如何查詢資料庫

thinkphp如何查詢資料庫

藏色散人
藏色散人原創
2019-08-23 13:29:445652瀏覽

thinkphp如何查詢資料庫

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('表达式','查询条件');

表達式不分大小寫,支援的查詢表達式有下列幾種,分別表示意思是:

 

thinkphp如何查詢資料庫

$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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn