当前位置: 首页 > news >正文

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&#xff1a; 控制器中打印一下&#xff1a; <?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 兼容适配

近日&#xff0c;杭州安恒信息技术股份有限公司&#xff08;以下简称“安恒信息”&#xff09;签署了 CLA&#xff08;Contributor License Agreement&#xff0c;贡献者许可协议&#xff09;&#xff0c;正式加入龙蜥社区&#xff08;OpenAnolis&#xff09;&#xff0c;并成为…...

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目录结构 查询主要目录结构&#xff1a…...

详解MySQL索引+面试题

前言: 📕作者简介:热爱编程的小七,致力于C、Java、Python等多编程语言,热爱编程和长板的运动少年! 📘相关专栏Java基础语法,JavaEE初阶,数据库,数据结构和算法系列等,大家有兴趣的可以看一看。 😇😇😇有兴趣的话关注博主一起学习,一起进步吧! 一、索引概述…...

设计模式:桥接器模式(C++实现)

桥接器模式&#xff08;Bridge Pattern&#xff09;是一种结构设计模式&#xff0c;它将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。桥接器模式通常用于需要在多个维度上扩展和变化的情况下&#xff0c;将抽象和实现解耦。 以下是一个简单的C桥接器模式的示例&a…...

公网远程访问GeoServe Web管理界面【内网穿透】

文章目录 前言1.安装GeoServer2. windows 安装 cpolar3. 创建公网访问地址4. 公网访问Geo Servcer服务5. 固定公网HTTP地址 前言 GeoServer是OGC Web服务器规范的J2EE实现&#xff0c;利用GeoServer可以方便地发布地图数据&#xff0c;允许用户对要素数据进行更新、删除、插入…...

AIMS医院手术麻醉信息系统全套源码,自主版权,开箱即用

手术麻醉临床信息系统有着完善的临床业务功能&#xff0c;能够涵盖整个围术期的工作&#xff0c;能够采集、汇总、存储、处理、展现所有的临床诊疗资料。通过该系统的实施&#xff0c;能够规范麻醉科的工作流程&#xff0c;实现麻醉手术过程的信息数字化&#xff0c;自动生成麻…...

中秋特辑——3D动态礼盒贺卡(可监听鼠标移动)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…...

Json文件序列化读取

Json文件 [{"name":"清华大学","location":"北京","grade":"1"},{"name":"北京大学","location":"北京","grade":"2"} ] 安装包 代码 Program.c…...

ClickHouse(15)ClickHouse合并树MergeTree家族表引擎之GraphiteMergeTree详细解析

GraphiteMergeTree该引擎用来对Graphite数据(图数据)进行瘦身及汇总。对于想使用ClickHouse来存储Graphite数据的开发者来说可能有用。 如果不需要对Graphite数据做汇总&#xff0c;那么可以使用任意的ClickHouse表引擎&#xff1b;但若需要&#xff0c;那就采用GraphiteMerge…...

面试题库(二):Java基础

hashmap1.7跟1.8?优化点?红黑树化为什么是8?退化为什么?dp怎么玩?回溯怎么玩?递归怎么玩?stack能解决啥问题?fifo能解决啥问题?dfs怎么玩?bfs怎么玩?双亲委派模型。JDBC和双亲委派模型关系TCP四次挥手,TIME_WAIT发生在哪一方 TIME_WAIT过多如何处理HashMap底层结构…...

Linux:无法接收组播数据

1、检查Linux系统是否接收到组播数据 使用tcpdump工具&#xff0c;检查源或者目的地址&#xff08;例如&#xff0c;239.1.1.1:9001&#xff09;的数据包 tcpdump -i ens33 host 239.1.1.1 port 9001 2、关闭防火墙 临时关闭&#xff1a; systemctl stop firewalld service ip…...

R语言贝叶斯非参数模型:密度估计、非参数化随机效应META分析心肌梗死数据...

全文链接&#xff1a;http://tecdat.cn/?p23785 最近&#xff0c;我们使用贝叶斯非参数&#xff08;BNP&#xff09;混合模型进行马尔科夫链蒙特卡洛&#xff08;MCMC&#xff09;推断&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 概述 相关视频 在这篇文…...

在gazebo仿真环境中加载多个机器人

文章目录 前言一、基本概念1、xacro2、Gazebo 加载单个机器人模型 二、原先launch文件代码三、 修改launch文件加载多个机器人总结 前言 单个机器人的各项仿真实验都基本完成&#xff0c;也实现了远程控制&#xff0c;接下来主要对多机器人编队进行仿真实验&#xff0c;在进行…...

少有人走的路阅读笔记

前言 仅记录学习笔记&#xff0c;如有错误欢迎指正。 感受&#xff1a; 刚看完这本书&#xff0c;因为是很多天碎片化的时间看的&#xff0c;所以肯定对最新的内容印象较为深刻&#xff1b;作者是一个心理医生&#xff0c;从他的视角讲述了常人应该怎么样让自己的心灵心智更加…...

极简解析!IP计费的s5爬虫IP

大家好&#xff01;今天我将为大家分享关于s5爬虫IP服务的知识。对于经常做爬虫的小伙伴来说&#xff0c;需要大量的爬虫IP支持爬虫业务&#xff0c;那么对于选择什么样的爬虫IP&#xff0c;我想我有很多发言权。 下面我们一起了解下IP计费的s5爬虫IP的知识&#xff0c;废话不…...

动静分离和前后端分离

动静分离和前后端分离 一、动静分离 侧重单体项目的静态资源分离 二、前后端分离 前后端完全分离...

【SpringBoot】集成SpringSecurity+JWT实现多服务单点登录,原来这么easy

Spring BootSpring SecurityJWT实现单点登录 源码 链接&#xff1a;https://pan.baidu.com/s/1EINPwP4or0Nuj8BOEPsIyw 提取码&#xff1a;kbue 一.概念 1.1.SSO 介绍&#xff1a; 单点登录(SingleSignOn&#xff0c;SSO)&#xff0c;当用户在身份认证服务器上登录一次以…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...