首頁 後端開發 php教程 ThinkPHP的增、刪、改、查

ThinkPHP的增、刪、改、查

Nov 29, 2017 am 10:32 AM
thinkphp tp 增刪改查

thinkphp是PHP框架,簡稱tp,今天就來講講,tp的增刪查改,了解tp的增刪查改,我相信,你一定會覺得之前用的原生的真的是太麻煩了,恨不得寫啥都用tp,讓我們來看看吧!

一、建立操作

在ThinkPHP使用add方法新增資料到資料庫。

使用方法如下:

$User = M("User"); // 实例化User对象
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->add($data);
登入後複製

或使用data方法連貫操作

$User->data($data)->add();
登入後複製

如果在add之前已經建立資料物件的話(例如使用了create或data方法),add方法就不需要再傳入資料了。

使用create方法的範例:

$User = M("User"); // 实例化User对象
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

// 根據表單提交的POST資料建立資料物件

$User->create();
$User->add(); // 根据条件保存修改的数据
登入後複製

如果你的主鍵是自動成長類型,並且如果插入資料成功的話,Add方法的回傳值就是最新插入的主鍵值,可以直接取得。

二、讀取資料

在ThinkPHP中讀取資料的方式很多,通常分為讀取資料和讀取資料集。

讀取資料集使用findall或select方法(findall和select方法等效):

$User = M("User"); // 实例化User对象
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

// 找出status值為1的使用者資料以建立時間排序傳回10個資料

$list = $User->where('status=1')->order('create_time')->limit(10)->select();
登入後複製

select方法的回傳值是一個二維陣列,如果沒有查詢到任何結果的話,也是傳回一個空的陣列。配合上述的連貫操作方法可以完成複雜的資料查詢。而最複雜的連貫方法應該是where方法的使用,因為這部分涉及的內容較多,我們會在查詢語言部分就如何進行組裝查詢條件進行詳細的使用說明。基本的查詢暫時不涉及關聯查詢部分,而是統一採用關聯模型來進行資料操作,這一部分請參考關聯模型部分。

讀取資料使用find方法:

讀取資料的運算其實和資料集的類似,select可用的所有連貫操作方法也都可以用於find方法,差別在於find方法最多只會傳回一筆記錄,因此limit方法對於find查詢操作是無效的。

$User = M("User"); // 实例化User对象
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

// 查找status值為1name值為think的使用者資料

$User->where('status=1 AND name="think" ')->find();
登入後複製

即使符合條件的資料不只一條,find方法只會傳回第一筆記錄。

如果要讀取某個欄位的值,可以使用getField方法,例如:

$User = M("User"); // 实例化User对象
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

// 取得ID為3的使用者的暱稱

$nickname = $User->where('id=3')->getField('nickname');
登入後複製

當只有一個字段的時候,始終傳回一個值。

如果傳入多個欄位的話,可以傳回一個關聯數組:

$User = M("User"); // 实例化User对象
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

// 取得所有使用者的ID和暱稱列表

$list = $User->getField('id,nickname');
登入後複製

傳回的list是一個陣列,鍵名是使用者的 id,鍵值是使用者的暱稱nickname。

三、更新資料

在ThinkPHP中使用save方法更新資料庫,並且也支援連貫運算的使用。

$User = M("User"); // 实例化User对象
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

// 要修改的資料物件屬性賦值

$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->where('id=5')->save($data); // 根据条件保存修改的数据
登入後複製

為了確保資料庫的安全,避免出錯更新整個資料表,如果沒有任何更新條件,資料物件本身也不包含主鍵欄位的話,save方法不會更新任何資料庫的記錄。

因此下面的程式碼不會更改資料庫的任何記錄

$User->save($data);
登入後複製

除非使用下面的方式:

$User = M("User"); // 实例化User对象
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

// 要修改的資料物件屬性賦值

$data['id'] = 5;
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->save($data); // 根据条件保存修改的数据
登入後複製

如果id是資料表的主鍵的話,系統會自動會把主鍵的值當作更新條件來更新其他欄位的值。

還有一種方法是透過create或data方法建立要更新的資料對象,然後進行儲存操作,這樣save方法的參數可以不需要傳入。

$User = M("User"); // 实例化User对象
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

// 要修改的資料物件屬性賦值

$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->where('id=5')->data($data)->save(); // 根据条件保存修改的数据
登入後複製

使用create方法的範例:

$User = M("User"); // 实例化User对象
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

// 根據表單提交的POST資料建立資料物件

$User->create();
$User->save(); //根据条件保存要修改的数据
登入後複製

上面的情況,表單中必須包含一個以主鍵為名稱的隱藏域,才能完成儲存作業。

如果只是更新個別字段的值,可以使用setField方法:

$User = M("User"); // 实例化User对象
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

// 更改使用者的name值

$User-> where('id=5')->setField('name','ThinkPHP');
登入後複製

setField方法支援同時更新多個字段,只需要傳入數組即可,例如:

$User = M("User"); // 实例化User对象
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

// 更改使用者的name和email的值

$User-> where('id=5')->setField(array('name','email'),array('ThinkPHP','ThinkPHP@gmail.com'));
登入後複製

而對於統計欄位(通常指的是數字類型)的更新,系統還提供了setInc和setDec方法:

$User = M("User"); // 实例化User对象
$User->setInc('score','id=5',3);// 用户的积分加3
$User->setInc('score','id=5'); // 用户的积分加1
$User->setDec('score','id=5',5);// 用户的积分减5
$User->setDec('score','id=5'); // 用户的积分减1
登入後複製

四、刪除資料

在ThinkPHP中使用delete方法刪除資料庫中的記錄。同樣可以使用連貫操作進行刪除操作。

$User = M("User"); // 实例化User对象
$User->where('id=5')->delete(); // 删除id为5的用户数据
$User->where('status=0')->delete(); // 删除所有状态为0的用户数据
登入後複製

delete方法可以用于删除单个或者多个数据,主要取决于删除条件,也就是where方法的参数,也可以用order和limit方法来限制要删除的个数,例如:

// 删除所有状态为0的5个用户数据按照创建时间排序

$User->where('status=0')->order('create_time')->limit('5')->delete();
登入後複製

以上就是tp的增删查改四种方法了,更多关于tp的内天请到本站搜索哦~

相关推荐:

tp上传图片与生成缩略图功能的实现示例

TP5实现邮件发送服务封装以及可发附件的实例

TP5改写跳转提示页面的实现方法

以上是ThinkPHP的增、刪、改、查的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

Go語言如何實作資料庫的增刪改查操作? Go語言如何實作資料庫的增刪改查操作? Mar 27, 2024 pm 09:39 PM

Go語言是一種高效、簡潔且易於學習的程式語言,因其在並發程式設計和網路程式設計方面的優勢而備受開發者青睞。在實際開發中,資料庫操作是不可或缺的一部分,本文將介紹如何使用Go語言實作資料庫的增刪改查操作。在Go語言中,我們通常會使用第三方函式庫來操作資料庫,例如常用的sql套件、gorm等。這裡以sql包為例介紹如何實作資料庫的增刪改查操作。假設我們使用的是MySQL資料庫。

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 個請求,實際應用中被廣泛用於京東商城、攜程網等大型網站和企業系統。

See all articles