首頁 後端開發 php教程 ThinkPHP的CURD方法及查詢方法一覽

ThinkPHP的CURD方法及查詢方法一覽

Nov 24, 2016 pm 02:28 PM
thinkphp

所謂CURD。即對資料庫操作的四個基本操作(CURD):C:create(創建)、U:update(更新)、R:read(讀取)和D:detele(刪除)。
在ThinkPHP中,並不是一定以這幾個名字的方法,這裡列出常見的:select,find,findAll,save,create等方法:

D讀取:
select->()查詢資料集,和findAll->()相同。例如:
$User->where('status=1′)->order('create_time')->limit(10)->select();
注意:在連貫操作中除了select方法必須放到最後一個外,其他的連貫操作的方法呼叫順序沒有先後,例如,下面的程式碼和上面的等效:
$User->order('create_time')->where('status=1′)->limit(10 )->select();

find->()方法,和上述兩種方法類似。區別在只傳回一條資料。可以和getField->()取得一筆記錄的某個欄位值一起用。

select和findall效果一樣,回傳的是一個二維數組。如

array(1) {

[0] => array(8)

{ ["rank_id"] => string(3) “151″

["rank_name"] => string(7) “測試9″

["rank_memo"] => string(3) “123″

["uid"] => string(5) “59471″

["rank_kw"] => string(6) “重要”

["rank_uptime"] => string(10) “1280202914″

["isverify"] => string(1) “0″

["ishot"] => string(1) “0″

}

}

find的效果如下,回傳的是一維數組:

array(8) {

["rank_id"] => string(3) “151″

["rank_id"] => string(3) “151″

["rank_id"] => string(3) “151″

=> string(7) “測試9″

["rank_memo"] => string(3) “123″

["uid"] => string(5) “59471″

["rank_kw"] = > string(6) 「重要」

["rank_uptime"] => string(10) “

1280202914″ ["isverify"] => string(1) “0″

["isverify"] => string(1) “0″

["ishot"] = string (1) 「0″

}


Where方法:用於查詢或更新條件的定義

Table方法:定義要操作的資料表名稱
$Model->Table('think_user user')->where( 'status>1′)->select();

field方法:定義要查詢的字段
field方法的參數支援字串和數組,例如,

$Model->field('id,nickname as name') ->select();

$Model->field(array('id','nickname'=>'name'))->select();

如果不使用field方法指定欄位的話,預設和使用field( '*')等效。


U更新,C建立:

data,add,save方法:資料物件賦值,添加,儲存。例如:
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';

$Model->data($data)->add();//新增,相當於insert,連貫寫法

$Model->add($data); //新增,相當於insert,非連貫寫法

$Model->data($data)->where('id=3 ′)->save(); //修改,相當於update

需要注意的是,save方法的話,如果資料沒有變化,那麼預設回傳的操作就是FALSE。但是這個save執行是OK的,這個要注意。


create->()自動從POST的字段組成形如$data的資料

$User=D(“User”);

$User->create(); //預設透過表單提交的資料進行建立
$User->add(); //新增

setInc和setDec方法。對於統計欄位(通常指的是數字類型)的更新:
$Model->setInc('score','id=5′,3); // 使用者的積分加3

$Model->setInc('score ','id=5′); // 使用者的積分加1

$Model->setDec('score','id=5′,5); // 使用者的積分減5

$Model->setDec( 'score','id=5′); // 使用者的積分減1


D刪除:

delete->()刪除資料

$User->where('status=0′)->order(' create_time')->limit('5′)->delete();


Model的其他常見方法:

order方法:結果排序例如:
order('id desc')
排序方法支援對多個欄位的排序

order('status desc,id asc')

order方法的參數支援字串和數組,數組的用法如下:
order(array('status'=>'desc','id'))

limit方法:結果限制🎜limit('1,10′)🎜如果使用limit('10′) 等效於limit('0,10′)🎜

page方法:查詢分頁,Page方法的用法和limit方法類似,格式為:
Page(‘page[,listRows]‘)
Page表示目前的頁數,listRows表示每頁顯示的記錄數。例如表示每頁顯示10筆記錄的情況下面,取得第2頁的資料:
Page('2,10′)
listRow如果不寫的話,會讀取limit('length') 的值,例如表示每頁顯示25筆記錄的情況下面,取得第3頁的資料:
limit(25)->page(3);
如果limit也沒有設定的話,則預設為每頁顯示20筆記錄。

Join方法:查詢Join支援.Join方法的參數支援字串和數組,而join方法是連貫操作中唯一可以多次呼叫的方法。例如:
$Model->join(' work ON artist.id = work.artist_id')->join('card ON artist.card_id = card.id')->select();
預設採用LEFT JOIN 方式,如果需要用其他的JOIN方式,可以改成
$Model->join('RIGHT JOIN work ON artist.id = work.artist_id')->select();

Distinct方法:查詢的Disiinct支援。查詢資料的時候進行唯一過濾
$Model->Distinct(true)->select();

Relation方法:關聯查詢支援
$Model->Relation(true)->select();

條件查詢

$map->put('name','php'); //name='php'

('name',array('like','think')); //name like '…'

('id',array('in',array(1,2,4)));

('id',array('10′,'3′,'or')); //id> =10 or

thinkphp多表查詢語句

1、table()函數
thinkphp中提供了一個table()函數,具體用法參考以下語句:
$list=$Demo->table('think_blog blog,think_type type')->where('blog.typeid=type.id')->field('blog.id as id,blog.title,blog.content,type.typename as type')->order( 'blog.id desc' )->limit(5)->select();
echo $Demo->getLastSql(); //列印SQL語句,看看

2、join()函式
看一下程式碼:
$Demo = M('artist');
$Demo->join('RIGHT JOIN think_work ON think_artist.id = think_work.artist_id' );
//可以使用INNER JOINLEFTFT JOIN的前綴!
echo $Demo->getLastSql(); //列印SQL語句,看看


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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

thinkphp專案怎麼運行 thinkphp專案怎麼運行 Apr 09, 2024 pm 05:33 PM

執行 ThinkPHP 專案需要:安裝 Composer;使用 Composer 建立專案;進入專案目錄,執行 php bin/console serve;造訪 http://localhost:8000 查看歡迎頁面。

thinkphp有幾個版本 thinkphp有幾個版本 Apr 09, 2024 pm 06:09 PM

ThinkPHP 擁有多個版本,針對不同 PHP 版本而設計。主要版本包括 3.2、5.0、5.1 和 6.0,而次要版本用於修復 bug 和提供新功能。目前最新穩定版本為 ThinkPHP 6.0.16。在選擇版本時,需考慮 PHP 版本、功能需求和社群支援。建議使用最新穩定版本以獲得最佳性能和支援。

thinkphp怎麼運行 thinkphp怎麼運行 Apr 09, 2024 pm 05:39 PM

ThinkPHP Framework 的本機運作步驟:下載並解壓縮 ThinkPHP Framework 到本機目錄。建立虛擬主機(可選),指向 ThinkPHP 根目錄。配置資料庫連線參數。啟動 Web 伺服器。初始化 ThinkPHP 應用程式。存取 ThinkPHP 應用程式 URL 運行。

laravel和thinkphp哪個好 laravel和thinkphp哪個好 Apr 09, 2024 pm 03:18 PM

Laravel 和 ThinkPHP 框架的效能比較:ThinkPHP 效能通常優於 Laravel,專注於最佳化和快取。 Laravel 性能良好,但對於複雜應用程序,ThinkPHP 可能更適合。

開發建議:如何利用ThinkPHP框架實現非同步任務 開發建議:如何利用ThinkPHP框架實現非同步任務 Nov 22, 2023 pm 12:01 PM

《開發建議:如何利用ThinkPHP框架實現非同步任務》隨著網路技術的快速發展,Web應用程式對於處理大量並發請求和複雜業務邏輯的需求也越來越高。為了提高系統的效能和使用者體驗,開發人員常常會考慮利用非同步任務來執行一些耗時操作,例如發送郵件、處理文件上傳、產生報表等。在PHP領域,ThinkPHP框架作為一個流行的開發框架,提供了一些便捷的方式來實現非同步任務。

thinkphp怎麼安裝 thinkphp怎麼安裝 Apr 09, 2024 pm 05:42 PM

ThinkPHP 安裝步驟:準備 PHP、Composer、MySQL 環境。使用 Composer 建立專案。安裝 ThinkPHP 框架及相依性。配置資料庫連線。產生應用程式碼。啟動應用程式並造訪 http://localhost:8000。

thinkphp效能怎麼樣 thinkphp效能怎麼樣 Apr 09, 2024 pm 05:24 PM

ThinkPHP 是一款高效能的 PHP 框架,具備快取機制、程式碼最佳化、平行處理和資料庫最佳化等優勢。官方性能測試顯示,它每秒可處理超過 10,000 個請求,實際應用中被廣泛用於京東商城、攜程網等大型網站和企業系統。

開發建議:如何利用ThinkPHP框架進行API開發 開發建議:如何利用ThinkPHP框架進行API開發 Nov 22, 2023 pm 05:18 PM

開發建議:如何利用ThinkPHP框架進行API開發隨著網際網路的不斷發展,API(ApplicationProgrammingInterface)的重要性也日益凸顯。 API是不同應用程式之間進行通訊的橋樑,它可以實現資料共享、功能呼叫等操作,為開發者提供了相對簡單且快速的開發方式。而ThinkPHP框架作為一款優秀的PHP開發框架,具有高效能、可擴展且易用

See all articles