W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
你可以在任意你需要的方法中添加以下代碼來連接你的數(shù)據(jù)庫(kù),或在類的構(gòu)造函數(shù)中添加這段代碼讓其在類里全局可用。
$db = \Config\Database::connect();
如果上面的函數(shù)沒有指定第一個(gè)參數(shù),它將使用數(shù)據(jù)庫(kù)配置文件中指定的默認(rèn)配置組來連接數(shù)據(jù)庫(kù),對(duì)于大多數(shù)人而言,這是首選的方案。
有一個(gè)簡(jiǎn)便的、純粹是封裝上一段代碼的方法,亦可以讓你便捷的連接數(shù)據(jù)庫(kù):
$db = db_connect();
這個(gè)函數(shù)的第一個(gè)參數(shù)是 可選的 ,用來從你的配置文件中選取某個(gè)配置組(建立連接)。例如:
從配置文件中選擇一個(gè)特定的配置組,你可以這樣做:
$db = \Config\Database::connect('group_name');
其中 group_name 是配置文件中配置組的名字。
默認(rèn)情況下, connect()
方法每次返回?cái)?shù)據(jù)庫(kù)連接的同一實(shí)例。若你需要一個(gè)單獨(dú)的連接到相同數(shù)據(jù)庫(kù),使用 false
作為第二個(gè)參數(shù):
$db = \Config\Database::connect('group_name', false);
如果你需要同時(shí)連接到多個(gè)不同的數(shù)據(jù)庫(kù),你可以這樣做:
$db1 = \Config\Database::connect('group_one');
$db = \Config\Database::connect('group_two');
注意: 將 “group_one” 和 “group_two” 修改為你想要連接的配置組名稱
注解
如果只是在同一連接上使用不同的數(shù)據(jù)庫(kù),你不需要?jiǎng)?chuàng)建單獨(dú)的數(shù)據(jù)庫(kù)配置。當(dāng)你需要時(shí),可以切換到不同的數(shù)據(jù)庫(kù),例如:
$db->dbSelect($database2_name);
你可以傳入一個(gè)數(shù)據(jù)庫(kù)配置數(shù)組參數(shù)替代配置組名稱,以此獲得一個(gè)自定義的數(shù)據(jù)庫(kù)連接。數(shù)組的格式必須與數(shù)據(jù)庫(kù)配置文件的配置組格式相同:
$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);
當(dāng)你在處理一些重量級(jí)的 PHP 操作時(shí)(例如處理圖像),若超過了數(shù)據(jù)庫(kù)的超時(shí)值,你應(yīng)該考慮在執(zhí)行后續(xù)查詢前先調(diào)用 reconnect() 方法向數(shù)據(jù)庫(kù)發(fā)送 ping 命令,這樣可以優(yōu)雅的保持連接有效或重新建立連接。
重要
若你使用 MySQLi 數(shù)據(jù)庫(kù)驅(qū)動(dòng),reconnect() 方法并不能 ping 通服務(wù)器但它可以關(guān)閉連接然后再次連接。
$db->reconnect();
雖然 CodeIgniter 可以智能的管理并自動(dòng)關(guān)閉數(shù)據(jù)庫(kù)連接,你仍可以顯式關(guān)閉連接。
$db->close();
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: