中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現thinkphp 框架數據庫切換

發布時間:2021-03-08 15:34:55 來源:億速云 閱讀:213 作者:TREX 欄目:開發技術

這篇文章主要介紹“如何實現thinkphp 框架數據庫切換”,在日常操作中,相信很多人在如何實現thinkphp 框架數據庫切換問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何實現thinkphp 框架數據庫切換”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

數據庫配置:

 //數據庫配置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';
//默認數據庫讀取數據
$test = Db::name("test")->select();
//第二個數據庫讀取數據
$test1=Db::connect("DB_Config_1")->name("test")->select();

application/config.php

$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類的時候動態定義連接信息,例如:

Db::connect([
  // 數據庫類型
  'type'    => 'mysql',
  // 數據庫連接DSN配置
  'dsn'     => '',
  // 服務器地址
  'hostname'  => '127.0.0.1',
  // 數據庫名
  'database'  => 'thinkphp',
  // 數據庫用戶名
  'username'  => 'root',
  // 數據庫密碼
  'password'  => '',
  // 數據庫連接端口
  'hostport'  => '',
  // 數據庫連接參數
  'params'   => [],
  // 數據庫編碼默認采用utf8
  'charset'   => 'utf8',
  // 數據庫表前綴
  'prefix'   => 'think_',
]);

或者使用字符串方式:

Db::connect('mysql://root:1234@127.0.0.1:3306/thinkphp#utf8');

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

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

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

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

//數據庫配置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';

我們可以改成

Db::connect('db_config1');
Db::connect('db_config2');

如何實現thinkphp 框架數據庫切換

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

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

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

代碼中引用:

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

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

或者

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

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

$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();

或者

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

注:nrf_amf_reg_info和nrf_disc_record為表名

到此,關于“如何實現thinkphp 框架數據庫切換”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海口市| 宁都县| 兴文县| 柳河县| 乐东| 阿坝县| 化州市| 梁山县| 定兴县| 台北市| 凤阳县| 关岭| 太仓市| 韩城市| 大城县| 三明市| 威远县| 桃园市| 武山县| 宽甸| 抚宁县| 汶上县| 光山县| 宝丰县| 信阳市| 闽清县| 绥中县| 定襄县| 山丹县| 绵竹市| 昂仁县| 印江| 塘沽区| 西宁市| 马山县| 莲花县| 河北省| 汝南县| 布尔津县| 鄂州市| 姜堰市|