thinkphp中的事務操作

2022-09-03 03:00:12 字數 973 閱讀 2791

1、事務的概念:

事務是由單獨單元的乙個或多個sql語句組成,在這個單元中,每個mysql語句是相互依賴的。而整個單獨單元作為乙個不可分割的整體,如果單元中的某條sql語句一旦執行失敗或產生錯誤,整個事務會發生回滾。所有收到影響的資料將返回到事務以前的狀態。如果整個單元的所有sql語句均執行成功,則事務順利執行。

2、事務的四個特性

acid

原子性:確保工作單元內的所有操作都成功完成,否則事務將被中止在故障點,和以前的操作將回滾到以前的狀態。

一致性:確保資料庫正確地改變狀態後,成功提交的事務。

永續性:一旦提交了這個事務之後對資料的修改更新是永久的。

隔離性:使事務操作彼此獨立和透明。

3、事務的整個過程

use databases;//開始使用某個資料庫

start transaction;//開啟事務

insert into stu1 values();//進行相關操作

commit;//提交事務

rollback;//回滾(撤銷事務)

4、thinkphp中的事務操作

使用事務處理的話,需要資料庫引擎支援事務處理。比如 mysql 的 myisam 不支援事務處理,需要使用 innodb 引擎。

使用 transaction 方法運算元據庫事務,當發生異常會自動回滾。

thinkphp提供了單資料庫的事務支援。

啟動事務:

$user->starttrans();

提交事務:

$user->commit();

事務回滾:

$user->rollback();

事務是針對資料庫本身的,所以可以跨模型操作的 。

測試舉例:

public function testtrans()catch (\exception $e)

$is = 1;

if($is == 1)else

}

ThinkPHP5 事務操作

使用事務處理的話,需要資料庫引擎支援事務處理。比如 mysql 的 myisam 不支援事務處理,需要使用 innodb 引擎。thinkphp5.0 使用 transaction 方法運算元據庫事務,當發生異常會自動回滾,例如 自動控制事務處理 db transaction function 也可...

ThinkPhp中的 CURD操作

think中的curd操作 thinkphp提供了靈活和方便的資料操作方法,對資料庫操作的四個基本操作 curd 建立 更新 讀 取和刪除的實現是最基本的,也是必須掌握的,在這基礎之上才能熟悉更多實用的資料操作方法。curd操作通常是可以和連貫操作配合完成的。資料建立 在進行資料操作之前,我們往往需...

SQLite中的事務操作

關於sqlite事務可以解決一些問題,比如你要插入兩個資料,可以將兩個資料作為同乙個事務進行插入,這樣如果第二個資料錯誤了,便自動執行回滾操作,第乙個資料也不會插入成功,保證了資料的同步!一 實際的例子 應用程式初始化時需要批量的向sqlite中插入大量資料,單獨的使用for insert方法導致應...