您好,登錄后才能下訂單哦!
這篇文章主要介紹“如何實現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');
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 框架數據庫切換”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。