主頁(yè) > 知識(shí)庫(kù) > thinkphp 框架數(shù)據(jù)庫(kù)切換實(shí)現(xiàn)方法分析

thinkphp 框架數(shù)據(jù)庫(kù)切換實(shí)現(xiàn)方法分析

熱門(mén)標(biāo)簽:梧州市機(jī)器人外呼系統(tǒng)怎么樣 公司外呼系統(tǒng)中心 天客通地圖標(biāo)注 廈門(mén)400電話辦理選易號(hào)網(wǎng) 地圖標(biāo)注符號(hào)樣式有 臨沂crm外呼系統(tǒng)平臺(tái) 電子地圖標(biāo)注怎么修改 菏澤語(yǔ)音外呼系統(tǒng)運(yùn)營(yíng)商 如何在世界地圖標(biāo)注

本文實(shí)例講述了thinkphp 框架數(shù)據(jù)庫(kù)切換實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:

數(shù)據(jù)庫(kù)配置:

 //數(shù)據(jù)庫(kù)配置1
'db_config1' => [
  // 數(shù)據(jù)庫(kù)類型
  'type'    => 'mysql',
  // 服務(wù)器地址
  'hostname'  => '127.0.0.1',
  // 數(shù)據(jù)庫(kù)名
  'database'  => 'thinkphp',
  // 數(shù)據(jù)庫(kù)用戶名
  'username'  => 'root',
  // 數(shù)據(jù)庫(kù)密碼
  'password'  => '',
  // 數(shù)據(jù)庫(kù)編碼默認(rèn)采用utf8
  'charset'   => 'utf8',
  // 數(shù)據(jù)庫(kù)表前綴
  'prefix'   => 'think_',
],
//數(shù)據(jù)庫(kù)配置2
'db_config2' => 'mysql://root:1234@localhost:3306/thinkphp#utf8';

//默認(rèn)數(shù)據(jù)庫(kù)讀取數(shù)據(jù)
$test = Db::name("test")->select();
//第二個(gè)數(shù)據(jù)庫(kù)讀取數(shù)據(jù)
$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');

方法配置

我們可以在調(diào)用Db類的時(shí)候動(dòng)態(tài)定義連接信息,例如:

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

或者使用字符串方式:

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

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

數(shù)據(jù)庫(kù)類型://用戶名:密碼@數(shù)據(jù)庫(kù)地址:數(shù)據(jù)庫(kù)端口/數(shù)據(jù)庫(kù)名#字符集

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

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

//數(shù)據(jù)庫(kù)配置1
'db_config1' => [
  // 數(shù)據(jù)庫(kù)類型
  'type'    => 'mysql',
  // 服務(wù)器地址
  'hostname'  => '127.0.0.1',
  // 數(shù)據(jù)庫(kù)名
  'database'  => 'thinkphp',
  // 數(shù)據(jù)庫(kù)用戶名
  'username'  => 'root',
  // 數(shù)據(jù)庫(kù)密碼
  'password'  => '',
  // 數(shù)據(jù)庫(kù)編碼默認(rèn)采用utf8
  'charset'   => 'utf8',
  // 數(shù)據(jù)庫(kù)表前綴
  'prefix'   => 'think_',
],
//數(shù)據(jù)庫(kù)配置2
'db_config2' => 'mysql://root:1234@localhost:3306/thinkphp#utf8';

我們可以改成

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

database.php是框架默認(rèn)的數(shù)據(jù)庫(kù)配置,里面寫(xiě)數(shù)據(jù)庫(kù)1的信息,新建了個(gè)database2.php是放置數(shù)據(jù)庫(kù)2的信息。

創(chuàng)建完數(shù)據(jù)庫(kù)2之后,在config配置文件里,文件最后引入數(shù)據(jù)庫(kù)2的配置信息

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

代碼中引用:

選擇數(shù)據(jù)庫(kù)1的時(shí)候,我是用模型查詢的直接寫(xiě)SQL語(yǔ)句:

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

或者

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

查詢數(shù)據(jù)庫(kù)2的信息時(shí),調(diào)用普通查詢語(yǔ)句:

$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為表名

更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門(mén)教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門(mén)教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門(mén)教程》及《PHP模板技術(shù)總結(jié)》。

希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • Thinkphp 框架配置操作之動(dòng)態(tài)配置、擴(kuò)展配置及批量配置實(shí)例分析
  • Thinkphp 框架配置操作之配置加載與讀取配置實(shí)例分析
  • Thinkphp 框架基礎(chǔ)之入口文件功能、定義與用法分析
  • Thinkphp 框架基礎(chǔ)之源碼獲取、環(huán)境要求與目錄結(jié)構(gòu)分析
  • Thinkphp 框架擴(kuò)展之驅(qū)動(dòng)擴(kuò)展實(shí)例分析
  • Thinkphp 框架擴(kuò)展之應(yīng)用模式實(shí)現(xiàn)方法分析
  • Thinkphp 框架擴(kuò)展之Widget擴(kuò)展實(shí)現(xiàn)方法分析
  • Thinkphp 框架擴(kuò)展之行為擴(kuò)展原理與實(shí)現(xiàn)方法分析
  • Thinkphp 框架擴(kuò)展之標(biāo)簽庫(kù)驅(qū)動(dòng)原理與用法分析
  • 淺談PHP之ThinkPHP框架使用詳解

標(biāo)簽:黃石 迪慶 瀘州 貴陽(yáng) 郴州 雞西 綿陽(yáng) 白城

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《thinkphp 框架數(shù)據(jù)庫(kù)切換實(shí)現(xiàn)方法分析》,本文關(guān)鍵詞  thinkphp,框架,數(shù)據(jù)庫(kù),切換,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《thinkphp 框架數(shù)據(jù)庫(kù)切換實(shí)現(xiàn)方法分析》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于thinkphp 框架數(shù)據(jù)庫(kù)切換實(shí)現(xiàn)方法分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章