当前位置: 首页 > 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();

http://www.lryc.cn/news/175055.html

相关文章:

  • SAP PO运维(一):系统概览异常处理
  • 安全厂商安恒信息加入龙蜥社区,完成 与 Anolis OS 兼容适配
  • maven找不到jar包
  • MySQL的数据目录
  • 详解MySQL索引+面试题
  • 设计模式:桥接器模式(C++实现)
  • 公网远程访问GeoServe Web管理界面【内网穿透】
  • AIMS医院手术麻醉信息系统全套源码,自主版权,开箱即用
  • 中秋特辑——3D动态礼盒贺卡(可监听鼠标移动)
  • Json文件序列化读取
  • ClickHouse(15)ClickHouse合并树MergeTree家族表引擎之GraphiteMergeTree详细解析
  • 面试题库(二):Java基础
  • Linux:无法接收组播数据
  • R语言贝叶斯非参数模型:密度估计、非参数化随机效应META分析心肌梗死数据...
  • 在gazebo仿真环境中加载多个机器人
  • 少有人走的路阅读笔记
  • 极简解析!IP计费的s5爬虫IP
  • 动静分离和前后端分离
  • 【SpringBoot】集成SpringSecurity+JWT实现多服务单点登录,原来这么easy
  • 手把手教你使用PLSQL远程连接Oracle数据库【内网穿透】
  • 浅谈Deep Learning 与 Machine Learning 与Artificial Intelligence
  • 和 Node.js 说拜拜,Deno零配置解决方案
  • AxureRP制作静态站点发布互联网,实现公网访问【内网穿透】
  • 【好文推荐】openGauss 5.0.0 数据库安全——全密态探究
  • 堆的介绍与堆的实现和调整
  • 【广州华锐互动】马属直肠检查3D虚拟仿真课件
  • Nuxt 菜鸟入门学习笔记:路由
  • C++基本语法和注释
  • CSRF攻击
  • 2023 “华为杯” 中国研究生数学建模竞赛(D题)深度剖析|数学建模完整代码+建模过程全解全析