溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

FleaPHP框架數(shù)據(jù)庫(kù)查詢條件$conditions怎么用

發(fā)布時(shí)間:2021-08-31 11:43:19 來(lái)源:億速云 閱讀:153 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹FleaPHP框架數(shù)據(jù)庫(kù)查詢條件$conditions怎么用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

具體如下:

在FleaPHP中,凡是用到數(shù)據(jù)庫(kù)查詢的函數(shù),都需要查詢條件參數(shù)$conditions,現(xiàn)講述用法如下:

舉例:

// $conditions 保存查詢條件
$conditions = 'level_ix > 1';
// $tableOrders 是一個(gè)訂單數(shù)據(jù)表的表數(shù)據(jù)入口對(duì)象
$order = $tableOrders->find($conditions, 'created DESC', 'id, title, body');
$conditions = array('username' => 'dualface');
// $tableUsers 是一個(gè)用戶信息數(shù)據(jù)表的表數(shù)據(jù)入口對(duì)象
$user = $tableUsers->find($conditions);

$conditions 參數(shù)可以是整數(shù)、字符串和數(shù)組三種類型:

1.如果 $conditions 參數(shù)是一個(gè)整數(shù),則假定該整數(shù)為主鍵字段值。

// 查詢主鍵字段值為1的記錄
$user = $tableUsers->find(1);
// 如果主鍵字段名為"id",則生成的where字句為"WHERE `id` = 1"

2.如果 $conditions 參數(shù)是一個(gè)字符串,則該字符串將直接作為查詢條件,這種方式可以支持最靈活的查詢條件。 例如:

$conditions = 'id < 3'
$user = $tableUsers->find($conditions);
//生成的where字句為"WHERE id < 3"

3.1.如果 $conditions 參數(shù)是一個(gè)數(shù)組,且指定了鍵名和值,則查詢條件中字段名為鍵名,字段值等于鍵值。例如:

// 查詢id字段值為3的記錄
$conditions = array(
  'id' => '1',
 );
$user = $tableUsers->find($conditions);
//生成的where字句為"WHERE `id` = 1"

3.2.如果 $conditions 參數(shù)是一個(gè)數(shù)組,但其中的元素沒(méi)有鍵名, 則假定鍵值為自定義查詢條件,例如:

$conditions = array('id = 1');
// 生成的where字句為"WHERE `id` = 1"
$user = $tableUsers->find($conditions);

3.3.$conditions 為數(shù)組時(shí),可以混用字符串和鍵值對(duì)兩種風(fēng)格:

$conditions = array(
  'id < 3',
  'sex' => 'male',
);
$user = $tableUsers->find($conditions);
// 生成的where字句為"id < 3 AND `sex` = 'male'"

$conditions 為數(shù)組時(shí),多個(gè)查詢條件之間將使用 AND 布爾運(yùn)算符進(jìn)行連接。

3.4."in()"查詢?cè)贔leaPHP中的實(shí)現(xiàn)。(原文由DreamPig發(fā)表于http://www.fleaphp.org/bbs/viewthread.php?tid=2168)
我們有時(shí)候要用到in這樣的操作,那么在condition里面怎么寫呢?

// 假如主鍵名為"id",需要查詢id的值為1、2、3其中之一,則可以這樣寫:
$condition = array(
  'in()' => array(1,2,3),
)
$user = $tableUsers->find($conditions);
// 生成的where子句為"WHERE `id` IN (1, 2, 3)"

那么如果不是主鍵的話怎么寫了呢? 也很簡(jiǎn)單,提供鍵值對(duì)即可。例如:

$condition = array(
  'in()' => array(
          'username' => array('username1','username2')
         )
  )
$user = $tableUsers->find($conditions);
// 生成的where子句為"WHERE `username` IN ('username1', 'username2')"

4.find()函數(shù)中其它參數(shù)的含義和用法如下:

4.1.$sort 參數(shù)指定查詢時(shí)的排序方式,類型只能為字符串
例如 'created ASC' 表示按照"created"字段進(jìn)行從小到大的排序。

4.2.$fields 參數(shù)指定查詢結(jié)果中要包含哪些字段,類型可以為字符串或數(shù)組
當(dāng)數(shù)據(jù)表的字段很多時(shí),通過(guò)指定 $fields 參數(shù)可以避免查詢不需要的字段,從而提高性能。

$fields 參數(shù)即可是以","逗號(hào)分隔的字段名,也可以是包含多個(gè)字段名的數(shù)組,例如:

$fields = array('title', 'created');
//也可以寫成下面的字符串形式,兩種寫法作用相同,區(qū)別在于自動(dòng)生成的字段名兩邊將會(huì)添加上"`"符號(hào),以防止出現(xiàn)字段名與SQL關(guān)鍵字沖突的情況出現(xiàn)。建議手寫時(shí)也加上"`"字符
$fields = 'title, created';
$user = $tableUsers->find('id < 10',NULL,$fields);

以上是“FleaPHP框架數(shù)據(jù)庫(kù)查詢條件$conditions怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI