當你需要使用多個數據庫連接的時候,就需要使用connect方法動態切換到另外一個數據庫連接,假設存在另外一個數據庫test,并且復制data過去更名為test,然后測試下面的示例:

頁面Trace的顯示信息可以看出來使用了兩次數據庫連接和執行了三次查詢,并且數據庫連接切換并沒有影響默認的查詢(第三個查詢還是使用的默認數據庫配置連接,test數據庫中并不存在data表,如果連接的還是第二個數據庫連接的話肯定會報錯)。

有時候,我們只需要設置一些基本的數據庫配置參數,可以簡化成一個字符串格式定義(該格式為ThinkPHP使用規范,而不是PDO連接規范,不要和DSN混淆起來):
> Db::connect('mysql://root@127.0.0.1/demo#utf8') ->query('select * from data where id = 1');
字符串格式的連接信息規范格式如下:
> 數據庫類型://用戶名[:用戶密碼]@數據庫服務器地址[:端口]/數據庫名[?參數
Db類的`connect方法`會返回一個數據庫連接對象實例,相同的連接參數返回的是同一個對象實例,除非你強制重新實例化,例如:

這樣,每次調用都會重新實例化數據庫的連接類。為了便于統一管理,你可以把數據庫配置參數納入配置文件,例如在應用配置文件中添加:

或者使用字符串方式定義'db_config' => 'mysql://root@127.0.0.1/demo',
上面的db_config配置參數不是在數據庫配置文件中定義,而是在應用配置文件或者模塊配置文件中定義。
然后,使用下面的方式來動態連接獲取切換連接
> Db::connect('db_config') ->query('select * from data where id=:id', ['id'=>3]);
當connect方法傳入的連接參數是字符串并且不包含/等特殊符號的話,表示使用的是預定義數據庫配置參數。