正如标题所说,这不是Laravel框架的原因。网上找到了java程序,使用Mysql多数据库进行事务处理也需要指定库。Laravel框架项目中使用了多个库,业务分别存放在不同的库中,连接的库在Model中指定。受保护的$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('library1')->beginTransaction();DB::connection('Library2')->beginTransaction();try{....DB::connection('Library1')->commit();DB::connection('库2')->commit();}catch(Exception$e){DB::connection('库1')->rollback();DB::connection('library2')->rollback();}没有实际应用,有机会在工作中查看。
