共计 772 个字符,预计需要花费 2 分钟才能阅读完成。
如题
其实这不是 Laravel 框架的起因,网上有查到 java 程序,应用 Mysql 多库进行事物解决,也须要指定库。
Laravel 框架我的项目中应用了多个库,将业务分库贮存,Model 中指定了连贯的库。
protected $connection = 'mysql_bms';
代码中应用事务处理
DB::beginTransaction();
try{
....
DB::commit();}
catch (Exception $e){DB::rollback();
}
明天测定测试发现事务处理并不失效。
钻研了好长时间才发现,原来是连贯多库的起因,事务处理须要这样写:
DB::connection('mysql_bms')->beginTransaction();
try{
....
DB::connection('mysql_bms')->commit();}
catch (Exception $e){DB::connection('mysql_bms')->rollback();}
程序中只应用该业务单个库的表,所以指定连贯就能够了,那么程序中 混合应用多库的表 呢?
网上查到 java 程序的解决方案,应该也适宜 PHP,那就是 程序应用的表,连贯多库,每个都要进行事务处理
DB::connection('库 1')->beginTransaction();
DB::connection('库 2')->beginTransaction();
try{
....
DB::connection('库 1')->commit();
DB::connection('库 2')->commit();}
catch (Exception $e){DB::connection('库 1')->rollback();
DB::connection('库 2')->rollback();}
没理论利用,有机会在工作中测验一下。
正文完