PHP--ThinkPHP6.0 事務操作

PHP–ThinkPHP6.0 事務操作

博客說明

文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗彙總,如有什麼地方侵權,請聯繫本人刪除,謝謝!

說明

都是先學功能,後面使勁的完善

看雲文檔地址

https://www.kancloud.cn/manual/thinkphp6_0/1037573

前提條件

使用事務處理的話,需要數據庫引擎支持事務處理。比如 MySQLMyISAM 不支持事務處理,需要使用 InnoDB 引擎

在這裏插入圖片描述

在這裏插入圖片描述

放這兩張圖片是因爲要體現一下兩種引擎

事務操作

使用 transaction 方法操作數據庫事務,當閉包中的代碼發生異常會自動回滾

//Db
Db::transaction(function () {
    Db::table('think_user')->find(1);
    Db::table('think_user')->delete(1);
});


//model
Db::transaction(function () {
    User::where('id',$user_id)->find();
    User::where('id',$user_id)->delete();
});

手動控制事務

// Db啓動事務
Db::startTrans();
try {
    Db::table('think_user')->find(1);
    Db::table('think_user')->delete(1);
    // 提交事務
    Db::commit();
} catch (\Exception $e) {
    // 回滾事務
    Db::rollback();
}

// model啓動事務
Db::startTrans();
try {
    User::where('id',$user_id)->find();
    User::where('id',$user_id)->delete();
    // 提交事務
    Db::commit();
} catch (\Exception $e) {
    // 回滾事務
    Db::rollback();
}

感謝

ThinkPHP

以及勤勞的自己

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章