所謂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(array('id','nickname'=>'name'))->select();
如果不使用field方法指定欄位的話,預設和使用field( '*')等效。
U更新,C建立:
data,add,save方法:資料物件賦值,添加,儲存。例如:
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$Model->add($data); //新增,相當於insert,非連貫寫法
$Model->data($data)->where('id=3 ′)->save(); //修改,相當於update需要注意的是,save方法的話,如果資料沒有變化,那麼預設回傳的操作就是FALSE。但是這個save執行是OK的,這個要注意。
create->()自動從POST的字段組成形如$data的資料
$User->create(); //預設透過表單提交的資料進行建立
$User->add(); //新增
setInc和setDec方法。對於統計欄位(通常指的是數字類型)的更新:
$Model->setInc('score','id=5′,3); // 使用者的積分加3
$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方法的參數支援字串和數組,數組的用法如下:
order(array('status'=>'desc','id'))
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語句,看看

PHP在現代編程中仍然是一個強大且廣泛使用的工具,尤其在web開發領域。 1)PHP易用且與數據庫集成無縫,是許多開發者的首選。 2)它支持動態內容生成和麵向對象編程,適合快速創建和維護網站。 3)PHP的性能可以通過緩存和優化數據庫查詢來提升,其廣泛的社區和豐富生態系統使其在當今技術棧中仍具重要地位。

在PHP中,弱引用是通過WeakReference類實現的,不會阻止垃圾回收器回收對象。弱引用適用於緩存系統和事件監聽器等場景,需注意其不能保證對象存活,且垃圾回收可能延遲。

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。

Fibers在PHP8.1中引入,提升了並發處理能力。 1)Fibers是一種輕量級的並發模型,類似於協程。 2)它們允許開發者手動控制任務的執行流,適合處理I/O密集型任務。 3)使用Fibers可以編寫更高效、響應性更強的代碼。

PHP社區提供了豐富的資源和支持,幫助開發者成長。 1)資源包括官方文檔、教程、博客和開源項目如Laravel和Symfony。 2)支持可以通過StackOverflow、Reddit和Slack頻道獲得。 3)開發動態可以通過關注RFC了解。 4)融入社區可以通過積極參與、貢獻代碼和學習分享來實現。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。

PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載
最受歡迎的的開源編輯器

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

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境