简单几部搞定laravel/lumen跨库操作

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

1.跨库数据库配置 

        在网站跟目录下的config文件中增加database.php作为数据库配置文件。配置如下:

    //当前默认数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
'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),
],
1
----------------------------------重磅内容来袭----------------------------------------------------

//增加其他库

1
2
3
4
5
6
7
8
9
10
11
12
13
'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';//指定数据库

    

代码演示

1
2
3
4
5
6
7
8
9
10
11
12
class  Customer  extends  Model
{
     protected  $connection = "xd_db" ; //指定数据库
     protected  $table  "customer" ;
     public  $timestamps  = false;
     
     ....
}
 
 
使用Model方式不发生任何变化。
Customer::where(...);

    


3.跨库DB原生操作

DB后面通过增加connection()方法指定要连接的数据库。

注意:常见的DB操作的默认指定的数据库配置标示名为database.php中的‘mysql’。

1
2
3
DB::where( '...' )
等同于
DB::connection( 'mysql' )->where();


同理,只需要指定需要连接的数据库的配置标示名即可实现跨库操作。

1
DB::connection( 'xd_db' )->where();



4.跨库事务

默认事务操作范例:

1
2
3
4
5
6
7
8
9
10
11
try  {
     DB::beginTransaction();
     
     ....业务操作....
     
     
     DB::commit();
} catch (\Exception  $e ){
     DB::rollback();
     throw  $e ;
}


跨库事务

1
2
3
4
5
6
7
8
9
10
11
try  {
     DB::connection( 'xd_db' )->beginTransaction();
     
     ....业务操作....
     
     
     DB::::connection( 'xd_db' )->commit();
} catch (\Exception  $e ){
     DB::::connection( 'xd_db' )->rollback();
     throw  $e ;
}


至此,关于laravel/lulem的所有有关跨库的操作均给出了具体操作方案。欢迎提出意见!










本文转自 hgditren 51CTO博客,原文链接:http://blog.51cto.com/phpme/2068561,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
前端开发 数据库 Python
Python Web 开发: 解释 Django 框架的 MVC 架构是什么?
Python Web 开发: 解释 Django 框架的 MVC 架构是什么?
328 0
|
10月前
|
测试技术 API 数据处理
深入解析 Laravel 中的集合(Collections)
【8月更文挑战第31天】
294 0
|
7月前
|
Go API 数据库
Go 语言中常用的 ORM 框架,如 GORM、XORM 和 BeeORM,分析了它们的特点、优势及不足,并从功能特性、性能表现、易用性和社区活跃度等方面进行了比较,旨在帮助开发者根据项目需求选择合适的 ORM 框架。
本文介绍了 Go 语言中常用的 ORM 框架,如 GORM、XORM 和 BeeORM,分析了它们的特点、优势及不足,并从功能特性、性能表现、易用性和社区活跃度等方面进行了比较,旨在帮助开发者根据项目需求选择合适的 ORM 框架。
654 4
|
前端开发 JavaScript 安全
如何给页面元素添加水印背景,在vue中怎么处理?
如何给页面元素添加水印背景,在vue中怎么处理?
545 1
|
SQL 分布式计算 Apache
|
前端开发
Elasticsearch7.12.1启动报错
ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
3578 0
Elasticsearch7.12.1启动报错
|
数据可视化 JavaScript 前端开发
vue2+datav可视化数据大屏(1)
最近打算出一个前端可视化数据大屏的系列专栏,这次将很全面的教大家设计可视化大屏,从开始到打包结束,其中,包括如何设计框架,如何封装axios,等等,本次使用的数据均为mock数据。与正常使用一致。本文会从开始的创建vu23项目到最后的项目打包,本篇共计3节。
1386 1
|
弹性计算 关系型数据库 MySQL
2023年阿里云双11优惠活动,省钱攻略来了!
2023年阿里云双11优惠活动,省钱攻略来了!2023阿里云双11优惠活动开启了,轻量2核2G3M带宽服务器87元一年、2核4G4M带宽165元一年,云服务器ECS经济型e实例2核2G3M固定带宽优惠价格99元一年,新老用户同享
1358 8
|
存储 数据管理 数据处理
阿里云oss收费标准
阿里云oss收费标准,阿里云对象存储OSS收费有两种计费模式,即包年包月和按量付费,包年包月是指购买存储包、流量包来抵扣OSS产生的存储费核流量费,OSS标准(LRS)存储包100GB优惠价33元、500GB存储包半年162元、OSS存储包40GB一年9元,OSS流量包100G 49元/月
11672 1
|
人工智能 自然语言处理 搜索推荐
阿里云“伙伴千问计划”已验证30余个行业应用场景
2023云栖大会上,阿里云发布了“通义千问伙伴计划”阶段性成果。

热门文章

最新文章