91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

laravel如何解決多庫中DB::transaction()事務失效的問題

發布時間:2021-07-12 15:02:55 來源:億速云 閱讀:136 作者:小新 欄目:開發技術

這篇文章主要介紹laravel如何解決多庫中DB::transaction()事務失效的問題,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

問題:最近使用laravel的DB::transaction()方法進行事務操作時,發現事務總是無效的。代碼如下:

DB::transaction(function () use ($uid, $roleId) {
 RoomUserRole::insert([
  'uid' => $uid,
  'role_id' => $roleId,
  'created_at' => LARAVEL_START,
  'updated_at' => LARAVEL_START
 ]);

 RoomUserRoleLog::insert([
  'uid' => $uid,
  'handle_type' => 1,
  'admin_uid' => Auth::user()->id,
  'created_at' => LARAVEL_START,
  'updated_at' => LARAVEL_START
 ]);

});

以上mysql 第二句會報錯拋出一個異常, 查看數據庫時第一句依然出入成功。查看laravel的DB::transaction()的使用

原因以及解決方法:

項目使用多個數據庫配置,DB::transaction()使用的是默認庫的事務操作。所以要指定哪個數據庫的事務,以上代碼調整:

DB::connection('mysql2')->transaction(function () use ($uid, $roleId) {
 RoomUserRole::insert([
  'uid' => $uid,
  'role_id' => $roleId,
  'created_at' => LARAVEL_START,
  'updated_at' => LARAVEL_START
 ]);

 RoomUserRoleLog::insert([
  'uid' => $uid,
  'handle_type' => 1,
  'admin_uid' => Auth::user()->id,
  'created_at' => LARAVEL_START,
  'updated_at' => LARAVEL_START
 ]);

}); // 這樣你會發現事務才正常回滾

同樣

DB::connection('mysql_chat_room')->beginTransaction();
DB::connection('mysql_chat_room')->commit();
DB::connection('mysql_chat_room')->rollBack(); // 指定庫,不然都會跑默認配置庫的事務

以上是“laravel如何解決多庫中DB::transaction()事務失效的問題”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

会同县| 突泉县| 丘北县| 融水| 沙湾县| 石屏县| 青阳县| 临漳县| 泸州市| 曲周县| 石渠县| 方正县| 云南省| 固安县| 鹰潭市| 佛坪县| 丰台区| 金湖县| 九江市| 平果县| 屯昌县| 敖汉旗| 瓦房店市| 霍邱县| 建宁县| 沐川县| 方城县| 濉溪县| 南京市| 杭锦后旗| 泾川县| 隆子县| 九江市| 南投县| 东兰县| 阿巴嘎旗| 澄城县| 辉县市| 和硕县| 闸北区| 宜都市|