thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例


Posted in PHP onMay 29, 2019

本文实例讲述了thinkPHP5框架实现多数据库连接,跨数据连接查询操作。分享给大家供大家参考,具体如下:

1. 多数据库连接

方法1:在需要连接其他数据库的地方,使用Db::connect()方法动态连接数据库,方法参数为数据库配置的数组或字符串例如:

字符串参数:

Db::connect('mysql://root:1234@127.0.0.1:3306/thinkphp#utf8');

配置数组参数:

Db::connect([
  // 数据库类型
  'type'    => 'mysql',
  // 数据库连接DSN配置
  'dsn'     => '',
  // 服务器地址
  'hostname'  => '127.0.0.1',
  // 数据库名
  'database'  => 'thinkphp',
  // 数据库用户名
  'username'  => 'root',
  // 数据库密码
  'password'  => '',
  // 数据库连接端口
  'hostport'  => '',
  // 数据库连接参数
  'params'   => [],
  // 数据库编码默认采用utf8
  'charset'   => 'utf8',
  // 数据库表前缀
  'prefix'   => 'think_',
]);

详细用法参考thinkphp5完全开发手册:https://www.kancloud.cn/manual/thinkphp5/118059

方法2:在应用配置文件里面添加多个数据库配置,例如:

'database1' => []//数据库配置数组 
'database2' => []//数据库配置数组

在需要连接时,使用Db::connect("database1")连接指定数据库,执行数据库操作时直接在连接后链式写函数,例如:

$db = Db::connect("database1");
$db->name("table")->select();

2. 跨数据库连接查询

方法1:利用Db::query("sql")方法执行sql语句,在sql语句中使用database.table的方式指明数据库及表,例如:

连接查询数据库database1中表table1与数据库database2中表table2中id相等的数据

select * from database1.table1 as t1 inner join database2.table2 as t2 where t1,id=t2.id

方法2:利用循环分别查询不同数据库

现在database1中查询数据,遍历查询结果集,分别查询database2中的满足条件的数据进行拼接

ps:描述有不到位的敬请提出问题

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
Sep 02 PHP
php初学者写及时补给skype用户充话费的小程序
Nov 02 PHP
php xml文件操作代码(一)
Mar 20 PHP
phpmyadmin MySQL 加密配置方法
Jul 05 PHP
备份mysql数据库的php代码(一个表一个文件)
May 28 PHP
解决ajax+php中文乱码的方法详解
Jun 09 PHP
浅析php学习的路线图
Jul 10 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
Mar 31 PHP
PHP实现Huffman编码/解码的示例代码
Apr 20 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
Apr 10 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
Sep 29 PHP
Laravel Reponse响应客户端示例详解
Sep 03 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
May 29 #PHP
php fread函数使用方法总结
May 28 #PHP
PHP常用正则表达式精选(推荐)
May 28 #PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
May 28 #PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
May 28 #PHP
详解PHP PDO简单教程
May 28 #PHP
laravel实现简单用户权限的示例代码
May 28 #PHP
You might like
php面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
php中关于普通表单多文件上传的处理方法
2011/03/25 PHP
php设计模式 Command(命令模式)
2011/06/26 PHP
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
php获取微信基础接口凭证Access_token
2018/08/23 PHP
把textarea中字符串里含有的回车换行替换成<br>的javascript代码
2007/04/20 Javascript
input按钮的事件处理大全
2010/12/10 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
Jquery响应回车键直接提交表单操作代码
2014/07/25 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
JS拖拽组件学习使用
2016/01/19 Javascript
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
详解如何使用 vue-cli 开发多页应用
2017/12/16 Javascript
JavaScript获取页面元素的常用方法详解
2019/09/28 Javascript
国内常用的js类库大全(CDN公共库)
2020/06/24 Javascript
[03:07]DOTA2英雄基础教程 冰霜诅咒极寒幽魂
2013/12/06 DOTA
简单实现python数独游戏
2018/03/30 Python
Pytorch 神经网络—自定义数据集上实现教程
2020/01/07 Python
Django REST framwork的权限验证实例
2020/04/02 Python
利用Python制作动态排名图的实现代码
2020/04/09 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
remote接口和home接口主要作用
2013/05/15 面试题
挖掘机司机岗位职责
2014/02/12 职场文书
《桥》教学反思
2014/04/09 职场文书
媒矿安全生产承诺书
2014/05/23 职场文书
体育教师个人工作总结
2015/02/09 职场文书
2016幼儿园新学期寄语
2015/12/03 职场文书
《曹冲称象》教学反思
2016/02/20 职场文书
八年级作文之友情
2019/11/25 职场文书
mysql5.6主从搭建以及不同步问题详解
2021/12/04 MySQL