配置文件的写法
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多数据库切换