W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
CodeIgniter 有一個配置文件用來保存數(shù)據(jù)庫連接值(用戶名、密碼、數(shù)據(jù)庫名等等), 這個配置文件位于 application/config/database.php 。 你也可以放置不同的 database.php 文件到特定的環(huán)境配置文件夾里 來設置 特定環(huán)境 的數(shù)據(jù)庫連接值。
配置存放在一個多維數(shù)組里,原型如下:
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'database_name',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array()
);
有些數(shù)據(jù)庫驅(qū)動(譬如:PDO,PostgreSQL,Oracle,ODBC)可能需要提供完整的 DSN 字符串。 在這種情況下,你需要使用 'dsn' 配置參數(shù),就好像使用該驅(qū)動的 PHP 原生擴展一樣。譬如:
// PDO
$db['default']['dsn'] = 'pgsql:host=localhost;port=5432;dbname=database_name';
// Oracle
$db['default']['dsn'] = '//localhost/XE';
注解
如果你沒有為需要 DSN 參數(shù)的驅(qū)動指定 DSN 字符串,CodeIgniter 將使用你提供的其他配置信息自動生成它。
注解
如果你提供了一個 DSN 字符串,但是缺少了某些配置(譬如:數(shù)據(jù)庫的字符集), 如果該配置存在在其他的配置項中,CodeIgniter 將自動在 DSN 上附加上該配置。
當主數(shù)據(jù)庫由于某些原因無法連接時,你還可以配置故障轉(zhuǎn)移(failover)。 可以像下面這樣為一個連接配置故障轉(zhuǎn)移:
$db['default']['failover'] = array(
array(
'hostname' => 'localhost1',
'username' => '',
'password' => '',
'database' => '',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE
),
array(
'hostname' => 'localhost2',
'username' => '',
'password' => '',
'database' => '',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE
)
);
你可以指定任意多個故障轉(zhuǎn)移。
我們使用多維數(shù)組的原因是為了讓你隨意的存儲多個連接值的設置, 譬如:如果你有多個環(huán)境(開發(fā)、生產(chǎn)、測試 等等), 你能為每個環(huán)境建立獨立的連接組,并在組之間進行切換。 舉個例子,如果要設置一個 "test" 環(huán)境,你可以這樣做:
$db['test'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'database_name',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'compress' => FALSE,
'encrypt' => FALSE,
'stricton' => FALSE,
'failover' => array()
);
然后,設置位于配置文件中的 $active_group 變量,告訴系統(tǒng)要使用 "test" 組:
$active_group = 'test';
注解
分組的名稱 "test" 是任意的,你可以取任意的名字。默認情況下, 主連接使用 "default" 這個名稱。當然,您可以基于您的項目為它起一個更有意義的名字。
可以通過數(shù)據(jù)庫配置文件里的 $query_builder 變量對 查詢構(gòu)造器類 進行全局的設定(啟用設成 TRUE,禁用設成 FALSE,默認是 TRUE)。 如果你不用這個類,那么你可以通過將這個變量值設置成 FALSE 來減少在數(shù)據(jù)庫類初始化時對電腦資源的消耗。
$query_builder = TRUE;
注解
一些 CodeIgniter 的類,例如 Sessions,在執(zhí)行一些函數(shù)的時候需要查詢構(gòu)造器的支持。
配置名 | 描述 |
---|---|
dsn | DSN 連接字符串(該字符串包含了所有的數(shù)據(jù)庫配置信息) |
hostname | 數(shù)據(jù)庫的主機名,通常位于本機,可以表示為 "localhost" |
username | 需要連接到數(shù)據(jù)庫的用戶名 |
password | 登陸數(shù)據(jù)庫的密碼 |
database | 你需要連接的數(shù)據(jù)庫名 |
dbdriver | 數(shù)據(jù)庫類型。如:mysql、postgres、odbc 等。必須為小寫字母。 |
dbprefix | 當使用 查詢構(gòu)造器 查詢時,可以選擇性的為表加個前綴, 它允許在一個數(shù)據(jù)庫上安裝多個 CodeIgniter 程序。 |
pconnect | TRUE/FALSE (boolean) - 是否使用持續(xù)連接 |
db_debug | TRUE/FALSE (boolean) - 是否顯示數(shù)據(jù)庫錯誤信息 |
cache_on | TRUE/FALSE (boolean) - 是否開啟數(shù)據(jù)庫查詢緩存, 詳情請見 數(shù)據(jù)庫緩存類。 |
cachedir | 數(shù)據(jù)庫查詢緩存目錄所在的服務器絕對路徑 |
char_set | 與數(shù)據(jù)庫通信時所使用的字符集 |
dbcollat | 與數(shù)據(jù)庫通信時所使用的字符規(guī)則, 只使用于 'mysql' 和 'mysqli' 數(shù)據(jù)庫驅(qū)動 |
swap_pre | 替換默認的 dbprefix 表前綴,該項設置對于分布式應用是非常有用的, 你可以在查詢中使用由最終用戶定制的表前綴。 |
schema | 數(shù)據(jù)庫模式,默認為 'public',用于 PostgreSQL 和 ODBC 驅(qū)動 |
encrypt | 是否使用加密連接。 'mysql' (deprecated), 'sqlsrv' and 'pdo/sqlsrv' drivers accept TRUE/FALSE 'mysqli' and 'pdo/mysql' drivers accept an array with the following options: 'ssl_key' - Path to the private key file 'ssl_cert' - Path to the public key certificate file 'ssl_ca' - Path to the certificate authority file 'ssl_capath' - Path to a directory containing trusted CA certificats in PEM format 'ssl_cipher' - List of allowed ciphers to be used for the encryption, separated by colons (':') 'ssl_verify' - TRUE/FALSE; Whether to verify the server certificate or not ('mysqli' only) |
compress | TRUE/FALSE (boolean) -是否使用客戶端壓縮協(xié)議(只用于MySQL) |
stricton | TRUE/FALSE (boolean) - 是否強制使用 "Strict Mode" 連接, 在開發(fā)程序時,使用 strict SQL 是一個好習慣。 |
port | 數(shù)據(jù)庫端口號,要使用這個值,你應該添加一行代碼到數(shù)據(jù)庫配置數(shù)組。$db['default']['port'] = 5432; |
注解
根據(jù)你使用的數(shù)據(jù)庫平臺(MySQL, PostgreSQL 等),并不是所有的參數(shù)都是必須的。譬如, 當你使用 SQLite 時,你無需指定用戶名和密碼,數(shù)據(jù)庫名稱直接是你的數(shù)據(jù)庫文件的路徑。 以上內(nèi)容假設你使用的是 MySQL 數(shù)據(jù)庫。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: