天天看點

tp5連結不同的mysql庫_tp5如何連結多個資料庫?

首先解決配置問題:

如果是正常的隻有一個資料庫的情況,官方推薦的做法是配置application目錄下的database.php檔案,把裡面的參數改成自己的實際參數就可以了。

如果一個項目要用到多個資料庫,就得為多個配置庫各寫一個配置檔案。

前面提到的那個database.php是預設的資料庫配置檔案,TP會自己去加載它,它就是項目的預設資料庫。在項目中直接用Db類去操作資料庫,如果不加額外參數,預設也是讀取的這個資料庫。

按TP5文檔裡對配置檔案的介紹,database.php是特殊的,是以在application目錄下。如果要額外添加别的資料庫配置,就不能也放在application目錄下了。(同樣也不推薦寫在config.php裡,因為那個檔案已經夠長了。而且按照強迫症的要求,已經有一個database.php獨立出來了,第二個資料庫的配置檔案怎麼能寫在一坨配置數組中間?是以必須也是獨立出來的。)

将database.php複制重命名,比如叫database_foo.php。按官方文檔對于額外配置的說明,把這個檔案放到application下的extra目錄中,并修改成你的另一個資料庫的參數。

然後驗證配置有沒有生效:

随便去一個控制器中,寫一段列印出配置數組的代碼,看看你添加的database_foo這個配置有沒有生效。

dump(Config::get());

重新整理一下頁面,Ctrl+F搜尋“database”,在配置數組的鍵中,應該有個“database”就是你的預設資料庫,還有一個“databse_foo”就是你之前添加的2号資料庫配置了。

看到這個,說明配置已經到位了。

如何使用多個資料庫:

在你的業務代碼中,想調用預設資料庫的地方,就照常寫:

Db::table("table1")->select();

想調用2号資料庫的地方就寫:

Db::connect("database_foo")->table("table1")->select();