简单几部搞定laravel/lumen跨库操作
1.跨库数据库配置
在网站跟目录下的config文件中增加database.php作为数据库配置文件。配置如下:
//当前默认数据库
'mysql'=>['driver'=>'mysql','host'=>env('DB_HOST','localhost'),'port'=>env('DB_PORT',3306),'database'=>env('DB_DATABASE','forge'),'username'=>env('DB_USERNAME','forge'),'password'=>env('DB_PASSWORD',''),'charset'=>env('DB_CHARSET','utf8'),'collation'=>env('DB_COLLATION','utf8_unicode_ci'),'prefix'=>env('DB_PREFIX',''),'timezone'=>env('DB_TIMEZONE','+00:00'),'strict'=>env('DB_STRICT_MODE',false),],
----------------------------------重磅内容来袭----------------------------------------------------
//增加其他库
'xd_db'=>['driver'=>'mysql','host'=>env('XD_DB_HOST','localhost'),'port'=>env('XD_DB_PORT',3306),'database'=>env('XD_DB_DATABASE','forge'),'username'=>env('XD_DB_USERNAME','forge'),'password'=>env('XD_DB_PASSWORD',''),'charset'=>env('XD_DB_CHARSET','utf8'),'collation'=>env('XD_DB_COLLATION','utf8_unicode_ci'),'prefix'=>env('XD_DB_PREFIX',''),'timezone'=>env('XD_DB_TIMEZONE','+00:00'),'strict'=>env('XD_DB_STRICT_MODE',false),],
2.跨库Model操作
只需要在model中增加下面语句即可,使用Model方式照旧:
protected $connection='xd_db';//指定数据库
代码演示
classCustomerextendsModel{protected$connection="xd_db";//指定数据库protected$table="customer";public$timestamps=false;....}使用Model方式不发生任何变化。Customer::where(...);
3.跨库DB原生操作
DB后面通过增加connection()方法指定要连接的数据库。
注意:常见的DB操作的默认指定的数据库配置标示名为database.php中的‘mysql’。
DB::where('...')等同于DB::connection('mysql')->where();
同理,只需要指定需要连接的数据库的配置标示名即可实现跨库操作。
DB::connection('xd_db')->where();
4.跨库事务
默认事务操作范例:
try{DB::beginTransaction();....业务操作....DB::commit();}catch(\Exception$e){DB::rollback();throw$e;}
跨库事务
try{DB::connection('xd_db')->beginTransaction();....业务操作....DB::::connection('xd_db')->commit();}catch(\Exception$e){DB::connection('xd_db')->rollback();throw$e;}
至此,关于laravel/lulem的所有有关跨库的操作均给出了具体操作方案。欢迎提出意见!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。