tp5连接多个数据库
一、如果你的主数据库配置文件都在config.php里
直接在config.php中中定义db2:
控制器中打印一下:
<?php
namespace app\index\controller;
use think\Controller;
use think\Db;
use think\Request;
class Index extends Controller
{public function index(){//连接默认的数据库$db1=Db::name('users')->select();//连接定义的第二个数据库$db2=Db::connect('db2');$result=$db2->name('ceshi')->select();print_r($result);die;return view('index');}
}

二、如果你的主数据库配置在database.php里
在 application/database.php 中,添加:
/*** 配置第二个数据库*/
'db2' => [// 数据库类型'type' => Env::get('database2.type', 'mysql'),// 服务器地址'hostname' => Env::get('database2.hostname', '127.0.0.1'),// 数据库名'database' => Env::get('database2.database', ''),// 用户名'username' => Env::get('database2.username', ''),// 密码'password' => Env::get('database2.password', ''),// 端口'hostport' => Env::get('database2.hostport', ''),// 连接dsn'dsn' => '',// 数据库连接参数'params' => [],// 数据库编码默认采用 utf8mb4'charset' => Env::get('database2.charset', 'utf8mb4'),// 数据库表前缀'prefix' => Env::get('database2.prefix', ''),// 数据库调试模式'debug' => Env::get('database2.debug', false),// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)'deploy' => 0,// 数据库读写是否分离 主从式有效'rw_separate' => false,// 读写分离后 主服务器数量'master_num' => 1,// 指定从服务器序号'slave_no' => '',// 是否严格检查字段是否存在'fields_strict' => true,// 数据集返回类型'resultset_type' => 'array',// 自动写入时间戳字段'auto_timestamp' => false,// 时间字段取出后的默认时间格式,默认为Y-m-d H:i:s'datetime_format' => false,// 是否需要进行SQL性能分析'sql_explain' => false,]
整个 database.php 文件如下,
<?phpuse think\Env;return [// 数据库类型'type' => Env::get('database.type', 'mysql'),// 服务器地址'hostname' => Env::get('database.hostname', '127.0.0.1'),// 数据库名'database' => Env::get('database.database', ''),// 用户名'username' => Env::get('database.username', ''),// 密码'password' => Env::get('database.password', ''),// 端口'hostport' => Env::get('database.hostport', ''),// 连接dsn'dsn' => '',// 数据库连接参数'params' => [],// 数据库编码默认采用 utf8mb4'charset' => Env::get('database.charset', 'utf8mb4'),// 数据库表前缀'prefix' => Env::get('database.prefix', ''),// 数据库调试模式'debug' => Env::get('database.debug', false),// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)'deploy' => 0,// 数据库读写是否分离 主从式有效'rw_separate' => false,// 读写分离后 主服务器数量'master_num' => 1,// 指定从服务器序号'slave_no' => '',// 是否严格检查字段是否存在'fields_strict' => true,// 数据集返回类型'resultset_type' => 'array',// 自动写入时间戳字段'auto_timestamp' => false,// 时间字段取出后的默认时间格式,默认为Y-m-d H:i:s'datetime_format' => false,// 是否需要进行SQL性能分析'sql_explain' => false,/*** 配置第二个数据库*/'db2' => [// 数据库类型'type' => Env::get('database2.type', 'mysql'),// 服务器地址'hostname' => Env::get('database2.hostname', '127.0.0.1'),// 数据库名'database' => Env::get('database2.database', ''),// 用户名'username' => Env::get('database2.username', ''),// 密码'password' => Env::get('database2.password', ''),// 端口'hostport' => Env::get('database2.hostport', ''),// 连接dsn'dsn' => '',// 数据库连接参数'params' => [],// 数据库编码默认采用 utf8mb4'charset' => Env::get('database2.charset', 'utf8mb4'),// 数据库表前缀'prefix' => Env::get('database2.prefix', ''),// 数据库调试模式'debug' => Env::get('database2.debug', false),// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)'deploy' => 0,// 数据库读写是否分离 主从式有效'rw_separate' => false,// 读写分离后 主服务器数量'master_num' => 1,// 指定从服务器序号'slave_no' => '',// 是否严格检查字段是否存在'fields_strict' => true,// 数据集返回类型'resultset_type' => 'array',// 自动写入时间戳字段'auto_timestamp' => false,// 时间字段取出后的默认时间格式,默认为Y-m-d H:i:s'datetime_format' => false,// 是否需要进行SQL性能分析'sql_explain' => false,]
];
.env文件配置如下:
[app]
debug = false
trace = false[database]
hostname = 127.0.0.1
database = db1
username = db1
password = 123456
hostport = 3306
prefix = data1_
charset = utf8mb4[database2]
hostname = 127.0.0.1
database = db2
username = db2
password = 123456
hostport = 3306
prefix = data2_
charset = utf8mb4
控制器中:
<?php$db2 = Db::connect(config('database.db2'));
$res = $db2->name("user")->where(['status' => 1])->select();dump($res);exit();
相关文章:
tp5连接多个数据库
一、如果你的主数据库配置文件都在config.php里 直接在config.php中中定义db2: 控制器中打印一下: <?php namespace app\index\controller; use think\Controller; use think\Db; use think\Request; class Index extends Controller {public fun…...
SAP PO运维(一):系统概览异常处理
打开SAP PIPO Netweaver Administration界面,系统概览下显示异常: 参考SAP note: 2577844 - AS Java Monitoring and Logging parametrization best practice service/protectedwebmethods = SDEFAULT -GetVersionInfo -GetAccessPointList -ListLogFiles -ReadLogFile -Para…...
安全厂商安恒信息加入龙蜥社区,完成 与 Anolis OS 兼容适配
近日,杭州安恒信息技术股份有限公司(以下简称“安恒信息”)签署了 CLA(Contributor License Agreement,贡献者许可协议),正式加入龙蜥社区(OpenAnolis),并成为…...
maven找不到jar包
配置settings.xml文件之后出现报错找不到jar包 先改maven设置: 然后在重新清理构建项目: 可以通过执行以下命令清理本地 Maven 仓库 mvn dependency:purge-local-repository...
MySQL的数据目录
文章目录 MySQL的数据目录1. MYSQL目录结构2. 数据库与文件系统的关系2.1 查看默认数据库2.2 数据库在文件系统中的表示2.1.1 MyISAM存储引擎模式2.1.2 InnoDB存储引擎模式 2.3 视图在文件系统中的表示2.4 小结 MySQL的数据目录 1. MYSQL目录结构 查询主要目录结构:…...
详解MySQL索引+面试题
前言: 📕作者简介:热爱编程的小七,致力于C、Java、Python等多编程语言,热爱编程和长板的运动少年! 📘相关专栏Java基础语法,JavaEE初阶,数据库,数据结构和算法系列等,大家有兴趣的可以看一看。 😇😇😇有兴趣的话关注博主一起学习,一起进步吧! 一、索引概述…...
设计模式:桥接器模式(C++实现)
桥接器模式(Bridge Pattern)是一种结构设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化。桥接器模式通常用于需要在多个维度上扩展和变化的情况下,将抽象和实现解耦。 以下是一个简单的C桥接器模式的示例&a…...
公网远程访问GeoServe Web管理界面【内网穿透】
文章目录 前言1.安装GeoServer2. windows 安装 cpolar3. 创建公网访问地址4. 公网访问Geo Servcer服务5. 固定公网HTTP地址 前言 GeoServer是OGC Web服务器规范的J2EE实现,利用GeoServer可以方便地发布地图数据,允许用户对要素数据进行更新、删除、插入…...
AIMS医院手术麻醉信息系统全套源码,自主版权,开箱即用
手术麻醉临床信息系统有着完善的临床业务功能,能够涵盖整个围术期的工作,能够采集、汇总、存储、处理、展现所有的临床诊疗资料。通过该系统的实施,能够规范麻醉科的工作流程,实现麻醉手术过程的信息数字化,自动生成麻…...
中秋特辑——3D动态礼盒贺卡(可监听鼠标移动)
前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄ÿ…...
Json文件序列化读取
Json文件 [{"name":"清华大学","location":"北京","grade":"1"},{"name":"北京大学","location":"北京","grade":"2"} ] 安装包 代码 Program.c…...
ClickHouse(15)ClickHouse合并树MergeTree家族表引擎之GraphiteMergeTree详细解析
GraphiteMergeTree该引擎用来对Graphite数据(图数据)进行瘦身及汇总。对于想使用ClickHouse来存储Graphite数据的开发者来说可能有用。 如果不需要对Graphite数据做汇总,那么可以使用任意的ClickHouse表引擎;但若需要,那就采用GraphiteMerge…...
面试题库(二):Java基础
hashmap1.7跟1.8?优化点?红黑树化为什么是8?退化为什么?dp怎么玩?回溯怎么玩?递归怎么玩?stack能解决啥问题?fifo能解决啥问题?dfs怎么玩?bfs怎么玩?双亲委派模型。JDBC和双亲委派模型关系TCP四次挥手,TIME_WAIT发生在哪一方 TIME_WAIT过多如何处理HashMap底层结构…...
Linux:无法接收组播数据
1、检查Linux系统是否接收到组播数据 使用tcpdump工具,检查源或者目的地址(例如,239.1.1.1:9001)的数据包 tcpdump -i ens33 host 239.1.1.1 port 9001 2、关闭防火墙 临时关闭: systemctl stop firewalld service ip…...
R语言贝叶斯非参数模型:密度估计、非参数化随机效应META分析心肌梗死数据...
全文链接:http://tecdat.cn/?p23785 最近,我们使用贝叶斯非参数(BNP)混合模型进行马尔科夫链蒙特卡洛(MCMC)推断(点击文末“阅读原文”获取完整代码数据)。 概述 相关视频 在这篇文…...
在gazebo仿真环境中加载多个机器人
文章目录 前言一、基本概念1、xacro2、Gazebo 加载单个机器人模型 二、原先launch文件代码三、 修改launch文件加载多个机器人总结 前言 单个机器人的各项仿真实验都基本完成,也实现了远程控制,接下来主要对多机器人编队进行仿真实验,在进行…...
少有人走的路阅读笔记
前言 仅记录学习笔记,如有错误欢迎指正。 感受: 刚看完这本书,因为是很多天碎片化的时间看的,所以肯定对最新的内容印象较为深刻;作者是一个心理医生,从他的视角讲述了常人应该怎么样让自己的心灵心智更加…...
极简解析!IP计费的s5爬虫IP
大家好!今天我将为大家分享关于s5爬虫IP服务的知识。对于经常做爬虫的小伙伴来说,需要大量的爬虫IP支持爬虫业务,那么对于选择什么样的爬虫IP,我想我有很多发言权。 下面我们一起了解下IP计费的s5爬虫IP的知识,废话不…...
动静分离和前后端分离
动静分离和前后端分离 一、动静分离 侧重单体项目的静态资源分离 二、前后端分离 前后端完全分离...
【SpringBoot】集成SpringSecurity+JWT实现多服务单点登录,原来这么easy
Spring BootSpring SecurityJWT实现单点登录 源码 链接:https://pan.baidu.com/s/1EINPwP4or0Nuj8BOEPsIyw 提取码:kbue 一.概念 1.1.SSO 介绍: 单点登录(SingleSignOn,SSO),当用户在身份认证服务器上登录一次以…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
