FleaPHP框架數(shù)據(jù)庫(kù)查詢條件($conditions)寫(xiě)法總結(jié)
本文實(shí)例講述了FleaPHP框架數(shù)據(jù)庫(kù)查詢條件($conditions)寫(xiě)法。分享給大家供大家參考,具體如下:
在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里面怎么寫(xiě)呢?
// 假如主鍵名為"id",需要查詢id的值為1、2、3其中之一,則可以這樣寫(xiě): $condition = array( 'in()' => array(1,2,3), ) $user = $tableUsers->find($conditions); // 生成的where子句為"WHERE `id` IN (1, 2, 3)"
那么如果不是主鍵的話怎么寫(xiě)了呢? 也很簡(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'); //也可以寫(xiě)成下面的字符串形式,兩種寫(xiě)法作用相同,區(qū)別在于自動(dòng)生成的字段名兩邊將會(huì)添加上"`"符號(hào),以防止出現(xiàn)字段名與SQL關(guān)鍵字沖突的情況出現(xiàn)。建議手寫(xiě)時(shí)也加上"`"字符 $fields = 'title, created'; $user = $tableUsers->find('id < 10',NULL,$fields);
推薦使用數(shù)組,這樣表數(shù)據(jù)入口處理起來(lái)更快一些。
希望本文所述對(duì)大家基于FleaPHP框架的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
destoon實(shí)現(xiàn)公司新聞詳細(xì)頁(yè)添加評(píng)論功能的方法
這篇文章主要介紹了destoon實(shí)現(xiàn)公司新聞詳細(xì)頁(yè)添加評(píng)論功能的方法,需要的朋友可以參考下2014-07-07淺談php中urlencode與rawurlencode的區(qū)別
下面小編就為大家?guī)?lái)一篇淺談php中urlencode與rawurlencode的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09win平臺(tái)安裝配置Nginx+php+mysql 環(huán)境
本文給大家分享的是win平臺(tái)安裝配置Nginx+php+mysql 環(huán)境的方法和步驟,有需要的小伙伴可以參考下。2016-01-01php file_get_contents抓取Gzip網(wǎng)頁(yè)亂碼的三種解決方法
用 file_get_contents() 函數(shù)抓取網(wǎng)頁(yè)會(huì)發(fā)生亂碼現(xiàn)象。有兩個(gè)原因會(huì)導(dǎo)致亂碼,一個(gè)是編碼問(wèn)題,一個(gè)是目標(biāo)頁(yè)面開(kāi)了Gzip,下面說(shuō)的就是開(kāi)了Gzip功能如何才能不亂碼的方法2013-11-11php is_executable判斷給定文件名是否可執(zhí)行實(shí)例
這篇文章主要介紹了php is_executable判斷給定文件名是否可執(zhí)行實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-09-09