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的日期处理函数及uchome的function_coomon中日期处理函数的研究
Jan 12 PHP
PHP JSON格式数据交互实例代码详解
Jan 13 PHP
php连接数据库代码应用分析
May 29 PHP
php在项目中寻找代码的坏味道(综艺命名)
Jul 19 PHP
初步介绍PHP扩展开发经验分享
Sep 06 PHP
PHP输出时间差函数代码
Jan 28 PHP
有关phpmailer的详细介绍及使用方法
Jan 28 PHP
php采集文章中的图片获取替换到本地(实现代码)
Jul 08 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
Aug 22 PHP
phplot生成图片类用法详解
Jan 06 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
PHP封装的非对称加密RSA算法示例
May 28 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/03/10 PHP
php 取得瑞年与平年的天数的代码
2009/08/10 PHP
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
Laravel 批量更新多条数据的示例
2017/11/27 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
js 函数的副作用分析
2011/08/23 Javascript
js中this用法实例详解
2015/05/05 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
微信小程序 Image API实例详解
2016/09/30 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
2017/06/28 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
vue 组件高级用法实例详解
2018/04/11 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
Python中return语句用法实例分析
2015/08/04 Python
pandas对指定列进行填充的方法
2018/04/11 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
2020/01/08 Python
django 文件上传功能的相关实例代码(简单易懂)
2020/01/22 Python
python上传时包含boundary时的解决方法
2020/04/08 Python
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
美国一家主打母婴用品的团购网站:zulily
2017/09/19 全球购物
行政经理岗位职责
2013/11/09 职场文书
教师现实表现材料
2014/02/14 职场文书
会计岗位描述
2014/02/22 职场文书
学用政策心得体会
2014/09/10 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
毕业答辩开场白范文
2015/05/27 职场文书
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python
深入理解 Golang 的字符串
2022/05/04 Golang
详解Go语言中配置文件使用与日志配置
2022/06/01 Golang