連接你的數據庫?
你可以在任意你需要的方法中添加以下代碼來連接你的數據庫,或在類的構造函數中添加這段代碼讓其在類里全局可用。
$db = \Config\Database::connect();
如果上面的函數沒有指定第一個參數,它將使用數據庫配置文件中指定的默認配置組來連接數據庫,對于大多數人而言,這是首選的方案。
有一個簡便的、純粹是封裝上一段代碼的方法,亦可以讓你便捷的連接數據庫:
$db = db_connect();
可用的參數?
- 數據庫組名,一個必須與配置類的屬性名匹配的字符串。默認值為 $config->defaultGroup;
- TRUE/FALSE (boolean). 是否返回共享連接(參考下文的連接多個數據庫)。
手動連接數據庫?
這個函數的第一個參數是 可選的 ,用來從你的配置文件中選取某個配置組(建立連接)。例如:
從配置文件中選擇一個特定的配置組,你可以這樣做:
$db = \Config\Database::connect('group_name');
其中 group_name 是配置文件中配置組的名字。
用多個鏈接連同一個數據庫?
默認情況下, connect()
方法每次返回數據庫連接的同一實例。若你需要一個單獨的連接到相同數據庫,使用 false
作為第二個參數:
$db = \Config\Database::connect('group_name', false);
連接多個數據庫?
如果你需要同時連接到多個不同的數據庫,你可以這樣做:
$db1 = \Config\Database::connect('group_one');
$db = \Config\Database::connect('group_two');
注意: 將 “group_one” 和 “group_two” 修改為你想要連接的配置組名稱
注解
如果只是在同一連接上使用不同的數據庫,你不需要創建單獨的數據庫配置。當你需要時,可以切換到不同的數據庫,例如:
$db->dbSelect($database2_name);
使用自定義配置連接數據庫?
你可以傳入一個數據庫配置數組參數替代配置組名稱,以此獲得一個自定義的數據庫連接。數組的格式必須與數據庫配置文件的配置組格式相同:
$custom = [
'DSN' => '',
'hostname' => 'localhost',
'username' => '',
'password' => '',
'database' => '',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'cacheOn' => false,
'cacheDir' => '',
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
];
$db = \Config\Database::connect($custom);
重新連接/保持連接有效?
當你在處理一些重量級的 PHP 操作時(例如處理圖像),若超過了數據庫的超時值,你應該考慮在執行后續查詢前先調用 reconnect() 方法向數據庫發送 ping 命令,這樣可以優雅的保持連接有效或重新建立連接。
重要
若你使用 MySQLi 數據庫驅動,reconnect() 方法并不能 ping 通服務器但它可以關閉連接然后再次連接。
$db->reconnect();