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 相关文章推荐
浅析PHP原理之变量分离/引用(Variables Separation)
Aug 09 PHP
php实现的九九乘法口诀表简洁版
Jul 28 PHP
PHP实现获取域名的方法小结
Nov 05 PHP
php实现在服务器端调整图片大小的方法
Jun 16 PHP
ThinkPHP控制器详解
Jul 27 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
May 16 PHP
Yii2中datetime类的使用
Dec 17 PHP
php实现websocket实时消息推送
Mar 30 PHP
PDO::rollBack讲解
Jan 29 PHP
Laravel基础-关于引入公共文件的两种方式
Oct 18 PHP
php 使用 __call实现重载功能示例
Nov 18 PHP
php中配置文件保存修改操作 如config.php文件的读取修改等操作
May 12 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下使用SMTP发邮件的代码
2008/01/10 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
2010/12/19 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
禁止ajax缓存获取程序最新数据的方法
2013/11/19 Javascript
Jquery实现控件的隐藏和显示实例
2014/02/08 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
js表单提交和submit提交的区别实例分析
2015/12/10 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
JS实现图片转换成base64的各种应用场景实例分析
2018/06/22 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
深入理解es6块级作用域的使用
2019/03/28 Javascript
序列化模块json代码实例详解
2020/03/03 Javascript
Python实现partial改变方法默认参数
2014/08/18 Python
python学习 流程控制语句详解
2016/06/01 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
Python实现输出某区间范围内全部素数的方法
2018/05/02 Python
caffe binaryproto 与 npy相互转换的实例讲解
2018/07/09 Python
tensorflow自定义激活函数实例
2020/02/04 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
python中selenium库的基本使用详解
2020/07/31 Python
意大利奢侈品购物网站:Giglio
2018/01/05 全球购物
联想英国官网:Lenovo英国
2019/07/17 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
总裁岗位职责
2013/12/04 职场文书
本科生的职业生涯规划范文
2014/01/09 职场文书
审计专业自荐信范文
2014/04/21 职场文书
导航工程专业自荐信
2014/09/02 职场文书
小学英语教师研修感悟
2015/11/18 职场文书