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写的serv-u的web申请账号的程序
Oct 09 PHP
php 分页函数multi() discuz
Jun 21 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
Feb 18 PHP
基于php使用memcache存储session的详解
Jun 25 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
Oct 26 PHP
php+mysqli事务控制实现银行转账实例
Jan 29 PHP
简单谈谈php延迟静态绑定
Jan 26 PHP
thinkPHP5.0框架模块设计详解
Mar 18 PHP
php上传excel表格并获取数据
Apr 27 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
php进程daemon化的正确实现方法
Sep 06 PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 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
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
2006/10/09 PHP
dede全站URL静态化改造[070414更正]
2007/04/17 PHP
PHP 遍历文件实现代码
2011/05/04 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
2016/02/01 PHP
js读写(删除)Cookie实例详解
2013/04/17 Javascript
多次注册事件会导致一个事件被触发多次的解决方法
2013/08/12 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
实例讲解JavaScript的Backbone.js框架中的View视图
2016/05/05 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
详解nodejs 文本操作模块-fs模块(二)
2016/12/22 NodeJs
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
JS实现简单短信验证码界面
2017/08/07 Javascript
JS实现按钮颜色切换效果
2020/09/05 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
Python 爬虫多线程详解及实例代码
2016/10/08 Python
瑜伽国际:Yoga International
2018/04/18 全球购物
会计助理的岗位职责
2013/11/29 职场文书
卖车协议书
2014/04/21 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
拒绝黄毒毒宣传标语
2014/06/26 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB