校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > thinkphp 框架數據庫切換實現方法分析

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

熱門標簽:梧州市機器人外呼系統怎么樣 公司外呼系統中心 天客通地圖標注 廈門400電話辦理選易號網 地圖標注符號樣式有 臨沂crm外呼系統平臺 電子地圖標注怎么修改 菏澤語音外呼系統運營商 如何在世界地圖標注

本文實例講述了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');

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相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術總結》。

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

您可能感興趣的文章:
  • Thinkphp 框架配置操作之動態配置、擴展配置及批量配置實例分析
  • Thinkphp 框架配置操作之配置加載與讀取配置實例分析
  • Thinkphp 框架基礎之入口文件功能、定義與用法分析
  • Thinkphp 框架基礎之源碼獲取、環境要求與目錄結構分析
  • Thinkphp 框架擴展之驅動擴展實例分析
  • Thinkphp 框架擴展之應用模式實現方法分析
  • Thinkphp 框架擴展之Widget擴展實現方法分析
  • Thinkphp 框架擴展之行為擴展原理與實現方法分析
  • Thinkphp 框架擴展之標簽庫驅動原理與用法分析
  • 淺談PHP之ThinkPHP框架使用詳解

標簽:黃石 迪慶 瀘州 貴陽 郴州 雞西 綿陽 白城

巨人網絡通訊聲明:本文標題《thinkphp 框架數據庫切換實現方法分析》,本文關鍵詞  thinkphp,框架,數據庫,切換,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《thinkphp 框架數據庫切換實現方法分析》相關的同類信息!
  • 本頁收集關于thinkphp 框架數據庫切換實現方法分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 澜沧| 武威市| 西吉县| 宁津县| 镇江市| 灵宝市| 临潭县| 贞丰县| 邵东县| 龙州县| 榆林市| 天镇县| 固始县| 上栗县| 额济纳旗| 阿城市| 孝感市| 安龙县| 图木舒克市| 南丹县| 肇庆市| 邳州市| 沙雅县| 新乡市| 海林市| 连南| 平邑县| 武功县| 尉氏县| 博兴县| 子洲县| 美姑县| 宁德市| 广东省| 丹棱县| 买车| 巢湖市| 林口县| 荥阳市| 阜南县| 桑植县|