laravel 连接同一服务器上多个数据库操作 、 连接多个不同服务器上的不同数据库操作以及多个数据库操作的事务处理
!注意:标红的要注意区分开
第一步、配置.env文件(同一服务器上多个数据库)
DB_CONNECTION=pgsql
DB_HOST=IP(例如:127.0.0.1)
DB_PORT=端口号(例如:5432)
DB_DATABASE=连接的第一个数据库名(例如:user)
DB_USERNAME=账号(例如:root)
DB_PASSWORD=密码(例如:root)
DB_DATABASE2=连接的第二个数据库名(例如:user2)
DB_DATABASE3=连接的第三个数据库名(例如:user3)
第一步、配置.env文件(多个服务器上的数据库)

第二部分把不相同的改改就行了,注意区分
第二部、配置config/database.php(上面两个第一步的配置是差不多的,注意区分好就行了)
//这个是默认的
'pgsql' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
],
//根据需求要连几个数据库就重复写下面的配置几遍,注意这里面'database'要跟 .env 里标红的相对应
'pgsql2' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE2', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
],
'pgsql3' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE3', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
],
第三步、使用方法
方法1:
user1=DB::connection(′pgsql′)−>select("SQL语句");user1=DB::connection(′pgsql′)−>select("SQL语句");user2 = DB::connection('pgsql2')->update("SQL语句");
$user3 = DB::connection('pgsql3')->select("SQL语句");
DB::connection('pgsql3')->delete("delete from changeinfo where id=1");
DB::connection('pgsql3')->insert("insert into changeinfo(name,idcard,iccid) values ('maxin′,′maxin′,′cardid','$iccid')");
DB::connection('pgsql')->update("update radcheck SET value='data′whereusername=′data′whereusername=′phone'");
DB::connection('pgsql3')->select("select * from changeinfo where iccid='$iccid'");
方法2:
protected connection=′pgsql′;//指明你要使用的连接 protectedconnection=′pgsql′;//指明你要使用的连接 protectedconnection = 'pgsql2'; //指明你要使用的连接
protected $connection = 'pgsql3'; //指明你要使用的连接
第四步、多个数据库操作事务处理
use socket;
DB::connection('pgsql1')->beginTransaction(); //开启
DB::connection('pgsql')->beginTransaction();
rs1=DB::connection(′pgsql1′)−>update("updateradcheckSETvalue=′rs1=DB::connection(′pgsql1′)−>update("updateradcheckSETvalue=′data' where username='phone′");phone′");rs2 = DB::connection('pgsql')->update("update radcheck SET value='data′whereusername=′data′whereusername=′phone'");
if(rs1&&rs1&&rs2)
{
DB::connection('pgsql')->commit(); //提交
DB::connection('pgsql1')->commit();
return true;
}
else
{
DB::connection('pgsql')->rollback(); //回滚
DB::connection('pgsql1')->rollback();
return false;
}
原文地址:https://www.cnblogs.com/54sen/articles/6929500.html
laravel 连接同一服务器上多个数据库操作 、 连接多个不同服务器上的不同数据库操作以及多个数据库操作的事务处理的更多相关文章
- SharePoint服务器将连接配置数据库的连接字符串保存在什么地方?
经常有人问我这个问题,SharePoint服务器将连接配置数据库的连接字符串保存在什么地方?虽然其他SharePoint服务器场设置都是保存到了配置数据库里面,但连接配置数据库本身的连接字符串,肯定是 ...
- 前段时间,接手一个项目使用的是原始的jdbc作为数据库的访问,发布到服务器上在运行了一段时间之后总是会出现无法访问的情况,登录到服务器,查看tomcat日志发现总是报如下的错误。 Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected est
前段时间,接手一个项目使用的是原始的jdbc作为数据库的访问,发布到服务器上在运行了一段时间之后总是会出现无法访问的情况,登录到服务器,查看tomcat日志发现总是报如下的错误. Caused by: ...
- SqlServer数据库同时备份到两台服务器上(并自动删除过期文件)
数据库同时备份到两台服务器上(并自动删除过期文件) 举例 :(本地)服务器A: IP :192.168.1.1 (远程)服务器B: IP :192.168.1.2 数据库版本:SqlServer200 ...
- 使用Navicat或者其他数据库工具连接阿里云EDS(数据库服务器)实例过程详解
使用Navicat或者其他数据库工具连接阿里云EDS(数据库服务器)实例过程详解 背景:这几天从阿里云上面购买了云服务器,最垃圾的那种,还送oss和EDS数据库服务器,只不过EDS数据库服务器只有一个 ...
- VS连接远程数据库,连接sqlserver2008,显示“基础提供程序在 Open 上失败”
今天安装完成VS2012后,在调试2010的程序的时候,出现“基础提供程序在 Open 上失败”,于是用vs连接远程sql2008,才发现问题是:“已成功与服务器连接,但是登录前的握手期间发生错误”, ...
- sql server导出数据,本地数据库远程连接不上,怎样设置防火墙(自用)
控制面板——>系统安全——>windows防火墙——>高级设置 新建入站规则: 将一下两个应用 允许入站: D:\Program Files (x86)\Microsoft SQL ...
- C# FTP上传文件时出现"应 PASV 命令的请求,服务器返回了一个与 FTP 连接地址不同的地址。"的错误
FTP上传文件时出现"应 PASV 命令的请求,服务器返回了一个与 FTP 连接地址不同的地址."的错误 解决方法是在原代码上增加这句话 reqFTP.UsePassive = f ...
- MVC设计模式下实现数据库的连接,并获取所有数据到浏览器页面上显示
实现建立一个学生的java类:里面封装了属性的全部属性: public class Student { private int id; private String username; private ...
- 数据库最大连接池max pool size
本文导读:Max Pool Size如果未设置则默认为100,理论最大值为32767.最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影 ...
- [转]Hibernate不能自动建表解决办法及Hibernate不同数据库的连接及SQL方言
最近开始学Hibernate,看的是李刚的那本<轻量级java ee企业应用实战>.头一个hibernate程序,我原原本本的按照书上例子写下来,同时只是改动了些mysql的连接参数,并且 ...
随机推荐
- CmsEasy 5.5 cut_image 代码执行漏洞
3 CmsEasy 5.5 cut_image 代码执行漏洞 3.1 摘要 3.1.1 漏洞介绍 CmsEasy是一款基于PHP+MySQL架构的网站内容管理系统,可面向大中型站点提供重量级网站建设解 ...
- AndroidStudio V2.0.0.汉化
汉化包下载:http://pan.baidu.com/s/1kVKYUjH AndroidStudio V2.0.x.版汉化工作介绍 resource_en.jar------> resourc ...
- fhq treap抄袭笔记
目录 碎碎念 点一下 注意!!! 模板 fhq treap 碎碎念 我咋感觉合并这么像左偏树呢 ps:难道你们的treap都是小头堆的吗 fhq真的是神人 现在看以前学的splay是有点恶心,尤其是压 ...
- JavaScript:Delete属性
以前,我就晓得delete只能够删除隐性属性(就是没有进行声明的变量),但是不知道为什么这样? 隐性属性:在页面中以前没有声明过该变量,直接进行赋值的 str='hongda' 其实这是由属性的特性决 ...
- 【Tomcat部署】Linux环境部署war包到tomcat
以turbine为例. 一.部署 1.下载或者生成war包(从maven上下载war包,并改名字为turbine.war) 2.将turbine.war拷贝到$TOMCAT_HOME/webapps中 ...
- [bzoj1571][Usaco2009 Open]滑雪课Ski
题目描述 Farmer John 想要带着 Bessie 一起在科罗拉多州一起滑雪.很不幸,Bessie滑雪技术并不精湛. Bessie了解到,在滑雪场里,每天会提供S(0<=S<=100 ...
- 【转】<c:forEach varStatus="status">中 varStatus的属性简介 及应用
转载原因:在做页面的时候,需要在页面中判断循环了第几次和一共循环了多少次,在网上搜集的时候,看到这篇帖子,觉得太全面了,于是转载了.... varStatus是<c:forEach>jst ...
- 函数递归简单题-hdoj-2044 2018-一只小蜜蜂 母牛的故事
题目:一只小蜜蜂 递归做法: #include<cstdio> #include<iostream> #include<stdlib.h> #include< ...
- python 集合取最大最小值
#Create a set seta = , , , , , ]) #Find maximum value print(max(seta)) #Find minimum value print(min ...
- ubuntu 14.04(desktop amd 64) nginx 安装启动停止
sudo apt-get install nginx 关闭: sudo service nginx stop 启动: sudo nginx