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

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

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,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
Docker 容器 数据格式
Docker 修改镜像源地址
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/80417198 我的Docker 版本为 1.
43512 0
|
9月前
|
SQL 关系型数据库 MySQL
MySQL锁机制:并发控制与事务隔离
本文深入解析了MySQL的锁机制与事务隔离级别,涵盖锁类型、兼容性、死锁处理及性能优化策略,助你掌握高并发场景下的数据库并发控制核心技巧。
|
存储 SQL 监控
关系型数据库. 基本的DELETE语句
`SQL DELETE` 语句用于从表中删除记录,基本格式为 `DELETE FROM 表名 WHERE 条件`。`WHERE` 子句可选,指定删除特定记录。例如,`DELETE FROM students WHERE age > 20;` 将删除年龄大于 20 的学生。执行前注意备份,总是使用 `WHERE` 子句以避免误删,并考虑在事务中执行以保证数据安全。大量删除可能影响性能,需谨慎操作。还要留意可能存在的触发器影响。
1221 2
|
12月前
|
中间件 关系型数据库 Go
Go语言数据库编程:数据迁移与事务控制
本文介绍了《Go语言实战指南》中关于数据库编程的核心内容,涵盖使用 GORM 进行数据迁移与事务控制。主要内容包括:AutoMigrate 方法自动创建或更新表结构;事务控制的自动与手动实现方式;事务隔离级别的设置;以及在 Gin 框架中统一管理事务的实践建议。适合开发阶段的数据库结构管理和事务性操作需求。
|
前端开发 安全 Go
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:如何上传文件
GoWind Admin(风行)是企业级中后台框架,支持文件上传功能。通过集成MinIO,实现安全高效的文件管理,提供预签名URL直传与服务端中转两种模式,推荐使用减轻后端压力的直连MinIO方案,提升系统性能与安全性。
408 0
|
存储 移动开发 安全
支付宝H5下载被拦截的原因排查与解决指南
在支付宝H5页面中,“请确保该下载文件来源安全”的提示通常源于支付宝的安全拦截机制。原因可能包括:1) 安全策略限制,如非HTTPS协议或未通过白名单审核;2) 文件下载方式不规范,如自动触发下载;3) CSP配置不当。解决方案包括:确保使用HTTPS协议、让用户主动触发下载、正确配置CSP、检查文件类型与存储位置、申请支付宝白名单以及遵循官方文档规范。调试时可查看控制台日志和网络请求状态,必要时联系支付宝技术支持协助排查。
949 0
|
机器学习/深度学习 编解码 算法
了解与对比主流背景去除工具
本文对比了几款主流的背景去除工具,包括Remove.bg、Removal.ai、RMBG 2.0、Imagga和Wondershare Pixcut,重点介绍了RMBG 2.0这款开源工具的性能、优势及挑战,适用于不同需求的用户选择。
|
SQL JSON 关系型数据库
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:列表查询规则指南
GoWind Admin|风行是一款开箱即用的企业级Go语言中后台框架,提供配置化、高兼容的列表查询规则,支持多条件筛选、排序分页、字段过滤等功能,兼容多种数据库,显著提升开发效率与系统可维护性。
364 0
|
机器学习/深度学习 人工智能 PyTorch
使用Pytorch构建视觉语言模型(VLM)
视觉语言模型(Vision Language Model,VLM)正在改变计算机对视觉和文本信息的理解与交互方式。本文将介绍 VLM 的核心组件和实现细节,可以让你全面掌握这项前沿技术。我们的目标是理解并实现能够通过指令微调来执行有用任务的视觉语言模型。
651 2
|
网络安全
宝塔配置ssl证书没有生效
宝塔配置ssl证书没有生效
777 4