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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
简介:

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操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
数据采集 网络协议 定位技术
Socks5代理IP可以运用到哪些应用场景?
Socks5代理与HTTP代理对比,Socks5支持多种协议,提供更强认证,适合P2P和UDP,适用于匿名上网、突破网络限制、低延迟游戏、P2P文件共享、SEO和网络爬虫。其多功能性、安全性和广泛支持使其在多个场景中优于HTTP代理。随着技术发展,Socks5代理的应用前景广阔。
|
Docker 容器 数据格式
Docker 修改镜像源地址
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/80417198 我的Docker 版本为 1.
43107 0
|
6月前
|
存储 机器学习/深度学习 人工智能
向量数据库
向量数据库是AI时代的“记忆中枢”与“索引引擎”,将图像、文本等非结构化数据转化为高维向量,实现语义级检索。它支撑RAG、多模态搜索、智能推荐等应用,助力大模型获取实时、私有知识,推动AI原生应用落地,正成为连接AI与数据世界的基石。
1158 13
|
12月前
|
存储 移动开发 安全
支付宝H5下载被拦截的原因排查与解决指南
在支付宝H5页面中,“请确保该下载文件来源安全”的提示通常源于支付宝的安全拦截机制。原因可能包括:1) 安全策略限制,如非HTTPS协议或未通过白名单审核;2) 文件下载方式不规范,如自动触发下载;3) CSP配置不当。解决方案包括:确保使用HTTPS协议、让用户主动触发下载、正确配置CSP、检查文件类型与存储位置、申请支付宝白名单以及遵循官方文档规范。调试时可查看控制台日志和网络请求状态,必要时联系支付宝技术支持协助排查。
679 0
|
机器学习/深度学习 编解码 算法
了解与对比主流背景去除工具
本文对比了几款主流的背景去除工具,包括Remove.bg、Removal.ai、RMBG 2.0、Imagga和Wondershare Pixcut,重点介绍了RMBG 2.0这款开源工具的性能、优势及挑战,适用于不同需求的用户选择。
|
机器学习/深度学习 人工智能 PyTorch
使用Pytorch构建视觉语言模型(VLM)
视觉语言模型(Vision Language Model,VLM)正在改变计算机对视觉和文本信息的理解与交互方式。本文将介绍 VLM 的核心组件和实现细节,可以让你全面掌握这项前沿技术。我们的目标是理解并实现能够通过指令微调来执行有用任务的视觉语言模型。
461 2
|
SQL 关系型数据库 MySQL
SQL自动启动设置指南:详细步骤与技巧
在数据库管理中,确保SQL服务能够自动启动对于保持数据服务的连续性和稳定性至关重要
1097 0
|
缓存
Errors during downloading metadata for repository 'remi-modular' 问题如何解决?
Errors during downloading metadata for repository 'remi-modular' 问题如何解决?
1177 5
|
消息中间件 Java Linux
RabbitMQ教程:Linux下安装、基本命令与Spring Boot集成
RabbitMQ教程:Linux下安装、基本命令与Spring Boot集成