精华内容
下载资源
问答
  • 本文实例讲述了thinkPHP5框架实现多数据库连接,跨数据连接查询操作。分享给大家供大家参考,具体如下:1. 多数据库连接方法1:在需要连接其他数据库的地方,使用Db::connect()方法动态连接数据库,方法参数为数据库...

    本文实例讲述了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程序设计有所帮助。

    展开全文
  • 需要到不同的数据库获取不同的表,看了下文档发现有这类方法,就记录下 文档  https://www.kancloud.cn/manual/thinkphp5_1/353998 步骤 配置文件 return [ // 数据库类型 'type' => 'mysql', ...

    前言

    需要到不同的数据库获取不同的表,看了下文档发现有这类方法,就记录下

     

    文档

      https://www.kancloud.cn/manual/thinkphp5_1/353998

     

    步骤

     

    配置文件

    return [
        // 数据库类型
        'type'        => 'mysql',
        // 服务器地址
        'hostname'    => '127.0.0.1',
        // 数据库名
        'database'    => 'thinkphp',
        // 数据库用户名
        'username'    => 'root',
        // 数据库密码
        'password'    => '',
        // 数据库连接端口
        'hostport'    => '',
        // 数据库连接参数
        'params'      => [],
        // 数据库编码默认采用utf8
        'charset'     => 'utf8',
        // 数据库表前缀
        'prefix'      => 'think_',
        //数据库配置1
        'db_config1' => [
            // 数据库类型
            'type'        => 'mysql',
            // 服务器地址
            'hostname'    => '192.168.1.8',
            // 数据库名
            'database'    => 'thinkphp',
            // 数据库用户名
            'username'    => 'root',
            // 数据库密码
            'password'    => '1234',
            // 数据库编码默认采用utf8
            'charset'     => 'utf8',
            // 数据库表前缀
            'prefix'      => 'think_',
        ],
        //数据库配置2
        'db_config2' => 'mysql://root:1234@192.168.1.10:3306/thinkphp#utf8',
    ];

     

     

    动态连接

    Db::connect('db_config1')->table('user')->find();
    Db::connect('db_config2')->table('user')->find();

     

    转载于:https://www.cnblogs.com/wangyang0210/p/10695085.html

    展开全文
  • TP5 连接多数据库

    千次阅读 2019-06-26 17:15:50
    use think\Config; $config = Config::get('database2'); //读取第二个数据库配置 ... //连接数据库 $data = $connect->name('admin')->find(); //对admin 表进行操作 注意: 1、数据库配置文件...
    use think\Config;
    
     $config = Config::get('database2');   //读取第二个数据库配置
     $connect =  Db::connect($config);    //连接数据库
     $data     = $connect->name('admin')->find();  //对admin 表进行操作
    

    注意: 1、数据库配置文件内容和正常的database一样;
    2、但是database2.php的放置的位置和默认的数据库配置文件的位置是不一的。如果都放在application 文件下。则Config::get( 读取不到
    3、要把database2.php放置到application/extra/下才能读取到

    展开全文
  • tp5连接多数据库

    千次阅读 2019-02-26 09:20:59
    '127.0.0.1', // // 数据库名 'database' => 'et_check', // 用户名 'username' => 'root', // // 密码 'password' => 'root', // 端口 'hostport' => '3306', // 连接dsn 'dsn' => '', // 数据库连接参数 'params' ...

    一、如果你的主数据库配置文件都在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里

    保持原有database.php不更改,在application下新建一个config.php,如果有则直接修改:

    [
        "db2" => [
         // 数据库类型1
        'type'            => 'mysql',
        // 服务器地址
         'hostname'        => '127.0.0.1',
        // // 数据库名
         'database'        => 'et_check',
         // 用户名
         'username'        => 'root',
        // // 密码
         'password'        => 'root',
        // 端口
        'hostport'        => '3306',
        // 连接dsn
        'dsn'             => '',
        // 数据库连接参数
        'params'          => [],
        // 数据库编码默认采用utf8
        'charset'         => 'utf8',
        // 数据库表前缀
        'prefix'          => 'check_',
        // 数据库调试模式
        'debug'           => false,
        // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
        'deploy'          => 0,
        // 数据库读写是否分离 主从式有效
        'rw_separate'     => false,
        // 读写分离后 主服务器数量
        'master_num'      => 1,
        // 指定从服务器序号
        'slave_no'        => '',
        // 自动读取主库数据
        'read_master'     => false,
        // 是否严格检查字段是否存在
        'fields_strict'   => true,
        // 数据集返回类型
        'resultset_type'  => 'array',
        // 自动写入时间戳字段
        'auto_timestamp'  => false,
        // 时间字段取出后的默认时间格式
        'datetime_format' => 'Y-m-d H:i:s',
        // 是否需要进行SQL性能分析
        'sql_explain'     => false,
        // Builder类
        'builder'         => '',
        // Query类
        'query'           => '\think\db\Query',
        // 是否需要断线重连
        'break_reconnect' => false,
        // 断线标识字符串
        'break_match_str' => [],
        ]
    ];
    

    控制器中:

    $db2=Db::connect(config('db2'));
    $result=$db2->name('ceshi')->select();
    
    展开全文
  • tp5 连接多数据库

    2021-03-17 09:26:03
    'db_config_test' =>...2.连接部分代码: //数据读取 例子 $list = Db::connect('db_config_test')->table('table_name')->select(); 或者 $list = Db::connect('db_config_test')->q...
  • 2、在控制器方法中代码如下 $config = Db::connect('database_a'); //读取第二个数据库配置 $data = $config->name('admin')->select(); //对admin 表进行操作 var_dump($data); ...
  • phpstudy php版本5.5.38 TP5.0 1.配置database.php //db1 // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => '******', // 用户名 'username' =&...
  • 前言:很小伙伴使用tp5时,连接数据库出现了Array and string offset access syntax with curly braces is deprecated(不赞成使用带花括号的数组和字符串偏移访问语法),这是因为你使用了PHP7+的版本,不在支持...
  • 在项目开发中需要Thinkphp5读取多个数据库的数据,本文详细介绍Thinkphp5多数据库切换一、在database.php配置默认数据库连接'type' => 'mysql','hostname' => '服务器IP地址','database' => '数据库名','...
  • 引言:有时候一个管理后台,需要涉及...thinkphp可以支持数据库连接。如何处理呢?1.进行个数据库的配置默认会连接database.php中的数据库信息。// +-------------------------------------------------------...
  • tp5实现多数据库查询

    2017-10-11 11:44:00
    引言: 有时候一个管理后台,需要涉及...thinkphp可以支持数据库连接。 如何处理呢? 1.进行个数据库的配置 默认会连接database.php中的数据库信息。 <?php // +-----------------------------------------...
  • 引言:有时候一个管理后台,需要涉及...thinkphp可以支持数据库连接。如何处理呢?1.进行个数据库的配置默认会连接database.php中的数据库信息。// +-------------------------------------------------------...
  • tp5调用存储过程,多连接数据库

    千次阅读 2018-03-16 16:12:15
    在config文件里面加入连接参数,比如:'db_config1'=&gt;['type'=&gt;'sqlsrv','hostname'=&gt; '','database'=&gt;'partner','username'=&gt;'','password'=&gt;'','charset'=&gt;'utf...
  • 本文实例讲述了tp5(thinkPHP5)框架实现多数据库查询的方法。分享给大家供大家参考,具体如下: 引言: 有时候一个管理后台,需要涉及到多个数据库。比如,商城管理、直播管理、消息管理等等,它们都有自己的数据库。...
  • ThankPHP5连接多数据库

    2019-10-24 19:05:15
    ThankPHP5连接多数据库 tp5默认的数据库配置是在application包下database.php配置文件,但是我们想连接多个数据库应该怎么办呢? 在application包下config.php配置文件里加上你要连接的数据库配置即可,下面贴代码 &...
  • 本文实例讲述了tp5(thinkPHP5)框架实现多数据库查询的方法。分享给大家供大家参考,具体如下:引言:有时候一个管理后台,需要涉及到多个数据库。比如,商城管理、直播管理、消息管理等等,它们都有自己的数据库。这...
  • tp连接两个数据库

    2020-12-23 21:28:07
    thinkphp5 连接多数据库 1./application/目录下创建一个和database.php一样的文件,文件名不一样 2./application/目录下的config.php文件中引入:如下图
  • 最近刚好有一个需求,就是使用sqlserver当数据库去开发一个网站,这里就简单介绍一个如何去连接sqlserver数据库,以及一些简单的数据库操作方法,看完这篇之后,你就会知道,其实无论是哪种数据库去开发,其实原理都...
  • 最近刚好有一个需求,就是使用sqlserver当数据库去开发一个网站,这里就简单介绍一个如何去连接sqlserver数据库,以及一些简单的数据库操作方法,看完这篇之后,你就会知道,其实无论是哪种数据库去开发,其实原理都...
  • 本文实例讲述了tp5(thinkPHP5)框架实现多数据库查询的方法。分享给大家供大家参考,具体如下:引言:有时候一个管理后台,需要涉及到多个数据库。比如,商城管理、直播管理、消息管理等等,它们都有自己的数据库。这...
  • TP5 数据库读写分离

    千次阅读 2018-07-09 13:02:16
    1.分布式数据库必须是相同的数据库类型2....在读写分离的情况下,默认第一个数据库配置是主服务器的配置信息,负责写入数据,如果设置了master_num参数,则可以支持个主服务器写入5.还可以设置slave_no 指定...

空空如也

空空如也

1 2 3 4 5
收藏数 82
精华内容 32
关键字:

tp5多数据库连接