如题
其实这不是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();}
没理论利用,有机会在工作中测验一下。