首先,我們要了解為什么在laravel項(xiàng)目中使用事務(wù)。數(shù)據(jù)庫(db)事務(wù)(簡稱:事務(wù))是數(shù)據(jù)庫管理系統(tǒng)執(zhí)行過程中的一個(gè)邏輯單位,由一個(gè)有限的數(shù)據(jù)庫操作序列構(gòu)成。
db事務(wù)是一個(gè)非常重要的概念,而且非常有用,因?yàn)樗梢园踩毓芾眄?xiàng)目數(shù)據(jù)。laravel 5提供了事務(wù)提交、回滾等功能。那么如何在你的laravel 項(xiàng)目中使用DB事務(wù)?下面我們給大家舉一個(gè)簡單的例子。
我有三張表分別為“items”,“items_city”和“items_count”,我需要添加新數(shù)據(jù)。同時(shí)“items”表是一個(gè)主表,然后“items_city”和“items_count”是“items”表的子表。
所以我們需要使用事務(wù)的原因也很簡單,因?yàn)楫?dāng)我在db(數(shù)據(jù)庫)中添加新記錄時(shí),如果“items_city”表插入時(shí)出現(xiàn)錯(cuò)誤的話,那么“items”和“items_count”表記錄將自動(dòng)回滾,而如果所有表數(shù)據(jù)都成功插入,那么它將返回true。
代碼示例如下:
- DB::transaction(function () {
- $item_id = DB::table('items')->insertGetId(['title' => 'Hery']);
- DB::table('items_city')->insert(['item_id'=>$item_id,'name' => 'India']);
- DB::table('items_count')->insert(['item_id'=>$item_id,'price' => 10]);
- });
本篇文章就是關(guān)于在laravel 5中使用DB事務(wù)的相關(guān)介紹,簡單易懂,希望對(duì)需要的朋友有所幫助!
新聞熱點(diǎn)
疑難解答