ThinkPHP切換資料庫

2021-07-02 16:38:05 字數 1891 閱讀 3503

如果你需要切換到另外乙個資料庫(包括在相同和不同的資料庫型別之間切換)或者需要連線多個資料庫進行操作不同的資料,就需要使用thinkphp提供的資料庫切換方法,用法很簡單, 只需要呼叫model類的db方法,用法:model

->db(

"資料庫編號"

,"資料庫配置"

); 資料庫編號用數字格式,對於已經呼叫過的資料庫連線,是不需要再傳入資料庫連線資訊的,系統會自動記錄。對於預設的資料庫連線,內部的資料庫編號是0,因此為了避免衝突,請不要再次定義資料庫編號為0的資料庫配置。

資料庫配置的定義方式和模型定義connection屬性一樣,支援陣列、字串以及呼叫配置引數三種格式。

db方法呼叫後返回當前的模型例項,直接可以繼續進行模型的其他操作,所以該方法可以在查詢的過程中動態切換,例如:$this

->db(

1,"mysql://root:123456@localhost:3306/test"

)->

query

("查詢sql"

); 該方法新增了乙個編號為1的資料庫連線,並自動切換到當前的資料庫連線。

當第二次切換到相同的資料庫的時候,就不需要傳入資料庫連線資訊了,可以直接使用:$this

->db(

1)->

query

("查詢sql"

); 如果需要切換到預設的資料庫連線,只需要呼叫:$this

->db(

0);1

如果我們已經在專案配置中定義了其他的資料庫連線資訊,例如://資料庫配置1

'db_config1'

=array

('db_type'

=>

'mysql'

,'db_user'

=>

'root'

,'db_pwd'

=>

'1234'

,'db_host'

=>

'localhost'

,'db_port'

=>

'3306'

,'db_name'

=>

'thinkphp'

),//資料庫配置2

'db_config2'

=>

'mysql://root:1234@localhost:3306/thinkphp'

; 我們就可以直接在db方法中呼叫配置進行連線了:$this

->db(

1,"db_config1"

)->

query

("查詢sql"

);$this

->db(

2,"db_config2"

)->

query

("查詢sql"

); 如果切換資料庫之後,資料表和當前不一致的話,可以使用table方法指定要操作的資料表:$this

->db(

1)->

table

("top_user"

)->

find

(); 我們也可以直接用m方法切換資料庫,例如:m

("user"

,"think_"

,"mysql://root:123456@localhost:3306/test"

)->

query

("查詢sql"

); 或者m

("user"

,"think_"

,"db_config1"

)->

query

("查詢sql"

);

ThinkPHP 資料庫配置

在config.php檔案下配置 return array 配置項 配置值 db type mysql 資料型別 db host localhost,localhost1,localhost2 資料伺服器位址 db name sck 資料庫名 db user root 資料庫使用者名稱 db pwd...

mysql 切換資料庫 tp5 切換資料庫

在進行資料庫查詢的時候,支援切換資料庫進行查詢,例如 result db connect 資料庫型別 type mysql 伺服器位址 hostname 127.0.0.1 資料庫名 database thinkphp 資料庫使用者名稱 username root 資料庫密碼 password 12...

autofac web api 切換資料庫

可以通過下面的 拿到post方法的requestbody。post的引數通過actionfilter來處理會更好 string requestbody await controllercontext.request.content.readasstringasync builder.register...