thinkphp3和thinkPHP5 切换数据库连接

配置文件的写法

return array(
        'URL_MODEL'=>1, // 如果你的环境不支持PATHINFO 请设置为3,
        'DB_TYPE'=>'mysql',
        'DB_HOST'=>'localhost',
        'DB_NAME'=>'oa',
        'DB_USER'=>'root',
        'DB_PWD'=>'mysql',
        'DB_PORT'=>'3306',
        'DB_PREFIX'=>'oa_',
        'DB_NEW'=>array(
            'URL_MODEL'=>1, // 如果你的环境不支持PATHINFO 请设置为3,
            'DB_TYPE'=>'mysql',
            'DB_HOST'=>'localhost',
            'DB_NAME'=>'ecshop',
            'DB_USER'=>'root',
            'DB_PWD'=>'mysql',            
	    'DB_PORT'=>'3306',
	    'DB_PREFIX'=>'ecs_',
        ),
);

控制器中的写法:

M('collection')->field('guide')->select();  正常的M的话就是找的是第一个数据库中的数据,链接的是第一个数据库
M('admin_action','ecs_','DB_NEW')->select(); 访问DB_New=>array();   找的是DB_NEW中的数据 链接DB_NEW第二个数据库

今天遇到一个问题是在tp中从例外一个数据库的表中取得数据数据库应该要如下配置

return array(
        'URL_MODEL'=>1, // 如果你的环境不支持PATHINFO 请设置为3,
        'DB_TYPE'=>'mysql',
        'DB_HOST'=>'localhost',
        'DB_NAME'=>'oa',
        'DB_USER'=>'root',
        'DB_PWD'=>'mysql',
        'DB_PORT'=>'3306',
        'DB_PREFIX'=>'oa_',
        'DB_NEW'=>array(
            'URL_MODEL'=>1, // 如果你的环境不支持PATHINFO 请设置为3,
            'DB_TYPE'=>'mysql',
            'DB_HOST'=>'localhost',
            'DB_NAME'=>'test',
            'DB_USER'=>'root',
            'DB_PWD'=>'mysql',            
         'DB_PORT'=>'3306',
         'DB_PREFIX'=>' ',
         ),
)
如果表中没有前缀那么这里就写‘’或者‘ ’  而代码哪里就需要写
$xlsData = M('chapters',' ','DB_NEW')->select();    //M()中的第二个参数如果前缀为‘’ 那么就要写个空格  否则搜索不到信息

thinkPHP5

一、在database.php配置默认数据库连接

'type'           => 'mysql',
'hostname'       => '服务器IP地址',
'database'       => '数据库名',
'username'       => '用户名',
'password'       => '密码',
'hostport'       => '数据库端口',

二、在config.php配置第二个数据库连接

'DB_Config_1'=>[
'type'           => 'mysql',
'hostname'       => '服务器IP地址',
'database'       => '数据库名',
'username'       => '用户名',
'password'       => '密码',
'hostport'       => '数据库端口'
],

三、多数据库使用

//默认数据库读取数据
$test = Db::name("test")->select();
//第二个数据库读取数据
$test1=Db::connect("DB_Config_1")->name("test")->select();

在项目开发中需要Thinkphp5读取多个数据库的数据,本文详细介绍Thinkphp5多数据库切换

 

你可能感兴趣的:(php,thinkphp)