其實關於mysql的事務(原聲mysql語句),我在個人博客裏面有提到(mysql的文章分類下)html
今天看下基於laravel框架ORM的處理mysql
準備:laravel
表必須是InnoDB引擎sql
DB::beginTransaction(); try{ $name = 'abc'; $result1 = Test::create(['name'=>$name]); if (!$result1) { /** * Exception類接收的參數 * $message = "", $code = 0, Exception $previous = null */ throw new \Exception("1"); } $result2 = Test::create(['name'=>$name]); if (!$result2) { throw new \Exception("2"); } DB::commit(); } catch (\Exception $e){ DB::rollback();//事務回滾 echo $e->getMessage(); echo $e->getCode(); }
注意:若是id是自增的話,mysql的primary key是在內存中維護的,事務回滾是不會回退id,因此中間會出現斷層框架
轉:https://www.cnblogs.com/xj76149095/p/6222066.htmlspa