首頁 >php框架 >ThinkPHP >thinkPHP5框架實現多資料庫連接

thinkPHP5框架實現多資料庫連接

藏色散人
藏色散人轉載
2021-05-31 09:59:572933瀏覽

下面由thinkphp框架教學欄位介紹給大家thinkPHP5框架實作多資料庫連接,跨資料連接查詢操作,希望對需要的朋友有幫助!

具體如下:

1. 多資料庫連接

#方法1:在需要連接其他資料庫的地方,使用Db::connect()方法動態連接資料庫,方法參數為資料庫配置的陣列或字串例如:

字串參數:

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

配置陣列參數:

Db::connect([
  // 数据库类型
  'type'    => 'mysql',
  // 数据库连接DSN配置
  'dsn'     => '',
  // 服务器地址
  'hostname'  => '127.0.0.1',
  // 数据库名
  'database'  => 'thinkphp',
  // 数据库用户名
  'username'  => 'root',
  // 数据库密码
  'password'  => '',
  // 数据库连接端口
  'hostport'  => '',
  // 数据库连接参数
  'params'   => [],
  // 数据库编码默认采用utf8
  'charset'   => 'utf8',
  // 数据库表前缀
  'prefix'   => 'think_',
]);

詳細用法參考thinkphp5完全開發手冊:https://www.kancloud.cn/manual/thinkphp5/118059

# #方法2:在應用程式設定檔裡面新增多個資料庫配置,例如:

'database1' => []//数据库配置数组 
'database2' => []//数据库配置数组

在需要連線時,使用Db::connect("database1")連線指定資料庫,執行資料庫操作時直接在連線後鍊式寫入函數,例如:

$db = Db::connect("database1");
$db->name("table")->select();

#2.跨資料庫連線查詢

# #方法1:利用Db::query("sql")方法執行sql語句,在sql語句中使用database.table的方式指明資料庫及表,例如:

連接查詢資料庫database1中表table1與資料庫database2中表table2中id相等的資料

select * from database1.table1 as t1 inner join database2.table2 as t2 where t1,id=t2.id

方法2:利用迴圈分別查詢不同資料庫

現在database1中查詢數據,遍歷查詢結果集,分別查詢database2中的滿足條件的數據進行拼接

ps:描述有不到位的敬請提出問題

以上是thinkPHP5框架實現多資料庫連接的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jb51.net。如有侵權,請聯絡admin@php.cn刪除