激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - thinkphp 框架數據庫切換實現方法分析

thinkphp 框架數據庫切換實現方法分析

2020-06-21 16:43人生如初見_張默 PHP教程

這篇文章主要介紹了thinkphp 框架數據庫切換實現方法,結合實例形式分析了thinkphp 框架數據庫切換實現方法與操作注意事項,需要的朋友可以參考下

本文實例講述了thinkphp 框架數據庫切換實現方法。分享給大家供大家參考,具體如下:

數據庫配置:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//數據庫配置1
'db_config1' => [
  // 數據庫類型
  'type'    => 'mysql',
  // 服務器地址
  'hostname'  => '127.0.0.1',
  // 數據庫名
  'database'  => 'thinkphp',
  // 數據庫用戶名
  'username'  => 'root',
  // 數據庫密碼
  'password'  => '',
  // 數據庫編碼默認采用utf8
  'charset'   => 'utf8',
  // 數據庫表前綴
  'prefix'   => 'think_',
],
//數據庫配置2
'db_config2' => 'mysql://root:1234@localhost:3306/thinkphp#utf8';
?
1
2
3
4
//默認數據庫讀取數據
$test = Db::name("test")->select();
//第二個數據庫讀取數據
$test1=Db::connect("DB_Config_1")->name("test")->select();

application/config.php

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$db1 = [
'type'=>'mysql',
'hostname'=>'127.0.0.1',
'database'=>'testA',
'username'=>'root',
'password'=>'123456',
'hostport'=>'3306',
'params'=>[],
'charset'=>'utf8',
'prefix'=>'', ],
$db2 = [
'type'=>'mysql',
'hostname'=>'127.0.0.1',
atabase'=>'testB',
'username'=>'root',
'password'=>'123456',
'hostport'=>'3306',
'params'=>[],
'charset'=>'utf8',
'prefix'=>'', ],
Db::connect('db1')->query('select * from user where age=25');

方法配置

 

我們可以在調用Db類的時候動態定義連接信息,例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Db::connect([
  // 數據庫類型
  'type'    => 'mysql',
  // 數據庫連接DSN配置
  'dsn'     => '',
  // 服務器地址
  'hostname'  => '127.0.0.1',
  // 數據庫名
  'database'  => 'thinkphp',
  // 數據庫用戶名
  'username'  => 'root',
  // 數據庫密碼
  'password'  => '',
  // 數據庫連接端口
  'hostport'  => '',
  // 數據庫連接參數
  'params'   => [],
  // 數據庫編碼默認采用utf8
  'charset'   => 'utf8',
  // 數據庫表前綴
  'prefix'   => 'think_',
]);

或者使用字符串方式:

?
1
Db::connect('mysql://root:[email protected]:3306/thinkphp#utf8');

字符串連接的定義格式為:

數據庫類型://用戶名:密碼@數據庫地址:數據庫端口/數據庫名#字符集

注意:字符串方式可能無法定義某些參數,例如前綴和連接參數。

如果我們已經在應用配置文件(注意這里不是數據庫配置文件)中配置了額外的數據庫連接信息,例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//數據庫配置1
'db_config1' => [
  // 數據庫類型
  'type'    => 'mysql',
  // 服務器地址
  'hostname'  => '127.0.0.1',
  // 數據庫名
  'database'  => 'thinkphp',
  // 數據庫用戶名
  'username'  => 'root',
  // 數據庫密碼
  'password'  => '',
  // 數據庫編碼默認采用utf8
  'charset'   => 'utf8',
  // 數據庫表前綴
  'prefix'   => 'think_',
],
//數據庫配置2
'db_config2' => 'mysql://root:1234@localhost:3306/thinkphp#utf8';

我們可以改成

?
1
2
Db::connect('db_config1');
Db::connect('db_config2');

thinkphp 框架數據庫切換實現方法分析

database.php是框架默認的數據庫配置,里面寫數據庫1的信息,新建了個database2.php是放置數據庫2的信息。

創建完數據庫2之后,在config配置文件里,文件最后引入數據庫2的配置信息

?
1
2
$db_con2 = require_once ('database2.php'),
'db_con2' => $db_con2,

代碼中引用:

 

選擇數據庫1的時候,我是用模型查詢的直接寫SQL語句:

?
1
2
3
4
5
//模型查詢
$user = new User();
$result = $user->where('username', $data['username'])
        ->where('password', $data['password'])
        ->find();

或者

?
1
2
3
User::where('id','1')->find();
//普通結構查詢
Db::table('think_user')->where('id',1)->find();

查詢數據庫2的信息時,調用普通查詢語句:

?
1
2
3
4
5
$list = Db::connect('db_con2')
->table('nrf_amf_reg_info')
->alias('r')
->join('nrf_amf_server s','r.Id = s.nrf_amf_reg_Id','LEFT')
->paginate();

或者

?
1
$list = Db::connect('db_con2')->name('nrf_disc_record')->paginate();

注:nrf_amf_reg_info和nrf_disc_record為表名

希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。

原文鏈接:https://blog.csdn.net/qq_42176520/article/details/81007503

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲第一成网站 | 国产亚洲精品久久久久久网站 | 免费视频 久久久 | 蜜桃欧美性大片免费视频 | 黄a大片 | 国产一级性生活视频 | 国产精品区在线12p 午夜视频色 | 91精品国产一区二区在线观看 | 精品国产乱码一区二区 | 国产在线观看91一区二区三区 | 国产乱xxxx | 色综合久久久久久久久久久 | 色婷婷一区二区三区 | 中韩毛片 | www.av520| 在线播放av片 | 88xx成人永久免费观看 | 牛牛热这里只有精品 | 午夜精品成人一区二区 | 特级黄色影院 | 成人毛片免费播放 | 成年人在线视频观看 | 久久久噜噜噜久久熟有声小说 | www.精品在线 | 久久伊人国产精品 | 天堂热 | 国产日产精品一区二区三区四区 | 久久毛片免费观看 | 欧美成人a | 国产一区二区欧美 | 一区www | 爱爱视频天天干 | 欧日韩| 高清做爰免费无遮网站挡 | 黄色av.com | 特级黄色影院 | 久久资源总站 | 精品成人免费一区二区三区 | 久久在线免费视频 | 久久精品一区二区三区四区五区 | 97se亚洲综合在线韩国专区福利 |