首頁 php教程 php手册 ThinkPHP 之 curd 操作

ThinkPHP 之 curd 操作

Jun 13, 2016 am 10:56 AM
thinkphp 實現 提供 操作 數據 方法 靈活

ThinkPHP提供了灵活和方便的数据操作方法,不仅实现了对数据库操作的四大基本操作(CURD):创建、读取、更新和删除的实现,还内置了很多实用的数据操作方法,提供了ActiveRecords模式的最佳体验。


新建记录 


PHP 代码


1.  $User->find(2);  


2.  $User->delete(); // 删除查找到的记录  


3.  $User->delete('5,6'); // 删除主键为5、6的数据  


4.  $User->deleteAll(); // 删除查询出来的所有数据 


PHP 代码


1.  // 实例化一个User模型对象  


2.   


3.  $User =  new  UserModel();  


4.  // 然后给数据对象赋值  


5.  $User->name = 'ThinkPHP';  


6.  $User->email = 'ThinkPHP@gmail.com';  


7.  // 然后就可以保存新建的User对象了  


8.  $User->add();  


9.  // 如果需要锁实例化模型对象的时候传入数据,可以使用  


10.            $data['name'] = 'ThinkPHP';  


11.            $data['email'] = 'ThinkPHP@gmail.com';  


12.            $User =  new  UserModel($data);  


13.            $User->add();  


14.            // 或者直接在add方法传入要新建的数据  


15.            $data['name'] = 'ThinkPHP';  


16.            $data['email'] = 'ThinkPHP@gmail.com';  


17.            $User =  new  UserModel();  


18.            $User->add($data);  


19.             


20.             


 


一般情况下,应用中的数据对象不太可能通过手动赋值的方式写入,而是有个数据对象的创建过程。ThinkPHP提供了一个create方法来创建数据对象,然后进行其它的新增或者编辑操作。


PHP 代码


1.  $User = D("User");  


2.  $User->create(); // 创建User数据对象,默认通过表单提交的数据进行创建  


3.  $User->add(); // 新增表单提交的数据 


Create方法支持从其它方式创建数据对象,例如,从其它的数据对象,或者数组等


PHP 代码


1.  $data['name'] = 'ThinkPHP';  


2.  $data['email'] = 'ThinkPHP@gmail.com';  


3.  $User->create($data);  


4.  // 从User数据对象创建新的Member数据对象  


5.  $Member = D("Member");  


6.  $Member->create($User); 


 


支持新增多条记录


PHP 代码


1.  $User =  new  UserModel();  


2.  $data[0]['name'] = 'ThinkPHP';  


3.  $data[0]['email'] = 'ThinkPHP@gmail.com';  


4.  $data[1]['name'] = '流年';  


5.  $data[1]['email'] = 'liu21st@gmail.com';  


6.  $User->addAll($data); 


在MySql数据库下面,会自动使用一条SQL语句实现多数据的插入。


查询记录


读取数据库的记录我觉得是数据库操作中的最有意思的一件事情了,写过文本数据库的人都知道,保存和删除数据不难(无非是规范和效率问题),难在可以通过各种方式来查找需要的数据。ThinkPHP通过各种努力,让数据库的查询操作变得轻而易举,也让ThinkPHP变得富有内涵。


ThinkPHP有一个非常明确的约定,就是单个数据查询和多个数据查询的方法是分开的,或者你会认为有时候自己也不知道要查询的数据是单个还是多个,但是有一点是明确的,你需要的是返回一个数据还是希望返回的是一个数据集。因为对两种类型的返回数据的操作方式是截然不同的,无论何种方式的返回,我们都可以直接在模型对象里面操作,当然也一样可以作为数据传递给你需要的变量。


先举个最简单的例子,假如我们要查询主键为8的某个用户记录,我们可以使用下面的一些方法:


PHP 代码


1.  $User->find(8); 


这个作为查询语言来说是最为直观的,如果查询成功,查询的结果直接保存在当前的数据对象中,在进行下一次查询操作之前,我们都可以提取,例如获取查询的结果数据:


PHP 代码


1.  $name = $User->name;  


2.  $email = $User->email; 


遍历查询到的数据对象属性


PHP 代码


1.  foreach  ($User  as  $key=>$val){  


2.    echo($key.':'.$val);  


3.  }  


// 或者进行相关的数据更改和保存操作


也可以用变量保存下来以便随时使用。


PHP 代码


1.  $user = $User->find(8); 


对于上面的查询条件,我们还可以使用getById来完成相同的查询


PHP 代码


1.    $User->getById(8); 


需要注意的是,对于find方法来说,即使查询结果有多条记录,也只会返回符合条件的第一条记录,如果要返回符合要求的所有记录,请使用findAll方法。


PHP 代码


1.    // 查询主键为1、3、8的记录集   


2.    $User->findAll('1,3,8');   


3.    // 遍历数据列表  


4.    foreach  ($User  as  $vo){  


5.    dump($vo->name);  


6.    }  


更多的查询操作请参考后面章节的内容。


       


更新记录


了解了查询记录后,更新操作就显得非常简单了。


// 还可以使用下面的方式更新


PHP 代码


1.  $User->find(1); // 查找主键为1的数据  


2.  $User->name = 'TOPThink'; // 修改数据对象  


3.  $User->save(); // 保存当前数据对象  


4.  $User->score = '(score+1)'; // 对用户的积分加1  


5.  $User->save(); 


如果不是使用数据对象的方式来保存,可以传入要保存的数据和条件


PHP 代码


1.  $data['id'] = 1;  


2.  $data['name'] = 'TopThink';  


3.  $User->save($data); 


除了save方法外,你还可以使用setField方法来更新特定字段的值,例如:


PHP 代码


1.  $User->setField('name','TopThink','id=1'); 


同样可以支持对字段的操作


PHP 代码


1.  $User->setField('score','(score+1)','id=1');  


2.  // 或者改成下面的  


3.  $User->setInc('score','id=1'); 


删除记录


 如果你的主键是自动增长类型,不需要传入主键的值就可以新建数据,并且如果插入数据成功的话,Add方法的返回值就是最新插入的主键值,可以直接获取。

 


echo $user->getLastSql();

 

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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)

微信刪除的人如何找回(簡單教學告訴你如何恢復被刪除的聯絡人) 微信刪除的人如何找回(簡單教學告訴你如何恢復被刪除的聯絡人) May 01, 2024 pm 12:01 PM

而後悔莫及、人們常常會因為一些原因不小心刪除某些聯絡人、微信作為一款廣泛使用的社群軟體。幫助用戶解決這個問題,本文將介紹如何透過簡單的方法找回被刪除的聯絡人。 1.了解微信聯絡人刪除機制這為我們找回被刪除的聯絡人提供了可能性、微信中的聯絡人刪除機制是將其從通訊錄中移除,但並未完全刪除。 2.使用微信內建「通訊錄恢復」功能微信提供了「通訊錄恢復」節省時間和精力,使用者可以透過此功能快速找回先前刪除的聯絡人,功能。 3.進入微信設定頁面點選右下角,開啟微信應用程式「我」再點選右上角設定圖示、進入設定頁面,,

開源!超越ZoeDepth! DepthFM:快速且精確的單目深度估計! 開源!超越ZoeDepth! DepthFM:快速且精確的單目深度估計! Apr 03, 2024 pm 12:04 PM

0.這篇文章乾了啥?提出了DepthFM:一個多功能且快速的最先進的生成式單目深度估計模型。除了傳統的深度估計任務外,DepthFM還展示了在深度修復等下游任務中的最先進能力。 DepthFM效率高,可以在少數推理步驟內合成深度圖。以下一起來閱讀這項工作~1.論文資訊標題:DepthFM:FastMonocularDepthEstimationwithFlowMatching作者:MingGui,JohannesS.Fischer,UlrichPrestel,PingchuanMa,Dmytr

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

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

Google狂喜:JAX性能超越Pytorch、TensorFlow!或成GPU推理訓練最快選擇 Google狂喜:JAX性能超越Pytorch、TensorFlow!或成GPU推理訓練最快選擇 Apr 01, 2024 pm 07:46 PM

谷歌力推的JAX在最近的基準測試中表現已經超過Pytorch和TensorFlow,7項指標排名第一。而且測試並不是JAX性能表現最好的TPU上完成的。雖然現在在開發者中,Pytorch依然比Tensorflow更受歡迎。但未來,也許有更多的大型模型會基於JAX平台進行訓練和運行。模型最近,Keras團隊為三個後端(TensorFlow、JAX、PyTorch)與原生PyTorch實作以及搭配TensorFlow的Keras2進行了基準測試。首先,他們為生成式和非生成式人工智慧任務選擇了一組主流

iPhone上的蜂窩數據網路速度慢:修復 iPhone上的蜂窩數據網路速度慢:修復 May 03, 2024 pm 09:01 PM

在iPhone上面臨滯後,緩慢的行動數據連線?通常,手機上蜂窩互聯網的強度取決於幾個因素,例如區域、蜂窩網絡類型、漫遊類型等。您可以採取一些措施來獲得更快、更可靠的蜂窩網路連線。修復1–強制重啟iPhone有時,強制重啟設備只會重置許多內容,包括蜂窩網路連線。步驟1–只需按一次音量調高鍵並放開即可。接下來,按降低音量鍵並再次釋放它。步驟2–過程的下一部分是按住右側的按鈕。讓iPhone完成重啟。啟用蜂窩數據並檢查網路速度。再次檢查修復2–更改資料模式雖然5G提供了更好的網路速度,但在訊號較弱

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 版本、功能需求和社群支援。建議使用最新穩定版本以獲得最佳性能和支援。

手機字體大小設定方法(輕鬆調整手機字體大小) 手機字體大小設定方法(輕鬆調整手機字體大小) May 07, 2024 pm 03:34 PM

字體大小的設定成為了重要的個人化需求,隨著手機成為人們日常生活的重要工具。以滿足不同使用者的需求、本文將介紹如何透過簡單的操作,提升手機使用體驗,調整手機字體大小。為什麼需要調整手機字體大小-調整字體大小可以使文字更清晰易讀-適合不同年齡段用戶的閱讀需求-方便視力不佳的用戶使用手機系統自帶字體大小設置功能-如何進入系統設置界面-在在設定介面中找到並進入"顯示"選項-找到"字體大小"選項並進行調整第三方應用調整字體大小-下載並安裝支援字體大小調整的應用程式-開啟應用程式並進入相關設定介面-根據個人

手機版龍蛋孵化方法大揭密(一步一步教你如何成功孵化手機版龍蛋) 手機版龍蛋孵化方法大揭密(一步一步教你如何成功孵化手機版龍蛋) May 04, 2024 pm 06:01 PM

手機遊戲成為了人們生活中不可或缺的一部分,隨著科技的發展。它以其可愛的龍蛋形象和有趣的孵化過程吸引了眾多玩家的關注,而其中一款備受矚目的遊戲就是手機版龍蛋。幫助玩家們在遊戲中更好地培養和成長自己的小龍,本文將向大家介紹手機版龍蛋的孵化方法。 1.選擇合適的龍蛋種類玩家需要仔細選擇自己喜歡並且適合自己的龍蛋種類,根據遊戲中提供的不同種類的龍蛋屬性和能力。 2.提升孵化機的等級玩家需要透過完成任務和收集道具來提升孵化機的等級,孵化機的等級決定了孵化速度和孵化成功率。 3.收集孵化所需的資源玩家需要在遊戲中

See all articles