1. 程式人生 > >Thinkphp 多表事務

Thinkphp 多表事務

在 Thinkphp 3.2.3 下測試通過。

Thinkphp 對事務的處理非常簡單。單表事務只需使用 M 函式例項化一個資料表物件,如果操作成功則提交,失敗則回滾。例如:

$User = M('user');

$User->startTrans(); // 開啟事務
$id = $User->add(['name' => 'hongxuan']);
//
// TODO 其它操作
//
if ($id) { // 插入成功
    $User->commit(); // 提交
} else { // 新增失敗
    $User->rollback(); // 回滾
}

對多表的事務處理也非常簡便。先用 M 函式例項化一個空物件
,使用 table 方法進行多個表的操作,如果操作成功則提交,失敗則回滾。例如:
$Model = M(); // 例項化一個空物件
$Model->startTrans(); // 開啟事務
//
// TODO 其它操作
//
// table 方法中的資料表名要帶上字首,這裡為“test_”。
$Model->table('test_user')->add(['name'=>'admin']);
$Model->table('test_key')->add(['key'=>'test']);
$Model->table('test_value')->add(['value'=>'test']);
$Model->table('test_task')->add(['task'=>'test']);
if (操作成功的條件) {
    $Model->commit(); // 成功則提交事務
} else {
    $Model->rollback(); // 否則將事務回滾
}


相關推薦

Thinkphp 事務

在 Thinkphp 3.2.3 下測試通過。 Thinkphp 對事務的處理非常簡單。單表事務只需使用 M 函式例項化一個資料表物件,如果操作成功則提交,失敗則回滾。例如: $User = M('u

DataSnap——利用TParams進行事務更新

.text nal rms exception then 進行 start datasnap final DataSnap——利用TParams進行多表事務更新 服務端: function TSVRDM.multUpdatesByPar(Upda

ThinkPHP 回滾無效

今天首次用到了多表回滾,遇到了一個坑。錯誤程式碼如下: try{ $Member = D("Member"); $Member->startTrans(); $member_condition['id'] = 11641; $member_dat

GreenDao 事務操作

場景:Android APP多表操作事務管理 使用Android自帶的sql操作類操作的時候需要手動處理事務,使用GreenDao的時候不用管了,啥都處理好了。但是,如果是多表操作的話,怎麼統一管理事務? 關鍵思想是事務巢狀,具體方法使用: DaoSession().callInTx()

thinkPHP3.1.2事務,批量插入資料, 詳解and例項

往list 表裡新增一行記錄,然後更新一下user表裡的status欄位 先用 M 函式例項化一個空物件,使用 table 方法進行多個表的操作,如果操作成功則提交,失敗則回滾 public func

oracle學習之查詢,子查詢以及事務處理

color 1-1 註意事項 員工 列數 .com 外連接 分析 top-n分析 多表查詢的基礎是采用笛卡爾集: 最終的行數 = 表1的行數 * 表2的行數 最終的列數 = 表1的列數 + 表2的列數 過濾笛卡爾集的關鍵是寫連接條件,N張表至少需要N-1個條件。 多表

ThinkPHP join() table()方法的使用,查詢

itl prefix top file span mod sel highlight ble table [php] view plain copy $list = M()->table(‘user1 a, user2 b‘)-&

JavaWeb--MySQL事務

今日內容 多表關係(理解) 一對一:在任意一方新增外來鍵指向另一方的主鍵,並且給外來鍵欄位新增unique約束;(瞭解) 一對多:在多的一方新增外來鍵指向一的一方的主鍵; 多對多:建立一張中間表,這個中間表中至少有兩個欄位作為外來鍵分別指向多對多雙方的主鍵; 多表查

thinkphp 5.0聯合查詢

宣告:所有文章僅僅是個人筆記,不用做教程,只適合自己用(因為我怕不符合大眾,容易引起誤導) 三表聯合查詢 //商品查詢 public function SelectAll(){ //連表查詢 $join=[ ['sh_ca

dbutils 的使用,事務處理,操作

dbutils 的使用,事務處理,多表操作, oracle 大資料處理 作者:呂鵬 時間:2011-08-08 首先還是簡單的回顧一下昨天我們講的什麼, 我們昨天講了資料庫連線池, 為防止頻繁訪問 資料庫而建立的連線池的實現有兩種一個是自定義連線池, 使用動態代理方式, 另外一個是 使用 DBCP,C3P0,

分散式事務庫)

yii下一個分散式事務處理(多表多庫) controller /** public function actionReview(){ $user=Yii::app()->user; $userid = @$use

資料庫操作事務處理

一、主要思路 在需要同時插入多條資料時,這其中可能是同一個表的多條記錄,也可能是多個不同表之間的資料同時更新。對此,我們需要保證其中的原子性和一致性,做到要麼全部操作都能全部成功完成,否則全部不操作。 我們可以通過SQL的事務來對相關資料庫操作進行處理,在開始conn.se

MYSQL_2 關係 事務 一對 sql練習

 多表設計之外來鍵約束     約束     約束的作用        約束是用來保證資料的完整性。 單表約束 主鍵約束 唯一約束 非空約束 多表約束 外來鍵約束:用來保證資料完整性(多表之間)。演示外來鍵約束作用建立一個部門表 create table dept( did

.net 三層構架下使用事務更新資料

//使用TransactionScope ,需要引用System.Transactions.dll using (TransactionScope scope = new TransactionS

mySQL查詢與事務

一、正規化 1. 什麼是正規化 1.1 什麼是正規化 正規化:設定一個科學的、規範的資料庫,需要滿足的一些規則 1.2 有哪些正規化 共有:6大正規化 第1正規化:1NF  滿足最基本的要求 第2正規化:2NF 在1NF基礎上,滿足更多要求 第3

mysql處理更新數據(1000萬級別)

多表 upd sql 更新數據 更新 數據 mysql bsp where 1、 表A(id,code,name,sex)表B(id,Aid,code,name,sex)B表中字段Aid為A表中的id.用一條語句將A表中code更新到B表中code中。 UPDATE A

(十二)Hibernate中的操作(1):單向對一

art 保存 int gen round t對象 情況 映射文件 拋出異常 由“多”方可知“一”方的信息,比如多個員工使用同一棟公寓,員工可以知道公寓的信息,而公寓無法知道員工的信息。 案例一: pojo類 public class Department {

查詢(章節摘要)

右外連接 多表查詢 div ora 產生 多個 oracl 數據 數據庫 1,多表查詢指的是一個查詢操作同一時候從多張表取數據的操作。 2,在多表查詢時,因為數據庫的檢索機制會產生笛卡兒積。笛卡兒積是多張數據表的乘積。 3。數據表的連接方式有兩種,即內連接,外連

語句事務操作

查詢 qpi dial SDR style location 導致 ucf 數據庫   要求: 向數據庫中插入兩條SQL, 要求一條失敗, 事務回滾.   環境: spring boot  方法一 : 第一個想到spring的事務機制 ----- @Transaction

(十四)Hibernate中的操作(4):單向一對一

odin utf-8 lds () clas string 方式 rdb style 案例一: 註解方式實現一對一 UserBean.java package bean; import java.io.Serializable; import javax.pers