'dsn' => '', 'hostname' => 'localhost', // 數據庫的主機名,通常位于本機,可以表示為 "localhost" 'username' => 'root', // 需要連接到數據庫的用戶名 'passWord' => '', // 登陸數據庫的密碼 'database' => 'ci_MySQL', // 數據庫類型。如:mysql、postgres、odbc 等。必須為小寫字母 'dbprefix' => '', // 當運行Active Record查詢時數據表的前綴,它允許在一個數據庫上安裝多個CodeIgniter程序 'pconnect' => FALSE, // 使用持續連接 'db_debug' => TRUE, // 顯示數據庫錯誤信息 'cache_on' => FALSE, // 數據庫查詢緩存是否開啟,詳情請見數據庫緩存類 'cachedir' => '', // 數據庫查詢緩存目錄所在的服務器絕對路徑 'char_set' => 'utf8', // 與數據庫通信時所使用的字符集 'dbcollat' => 'utf8_general_ci', // 與數據庫通信時所使用的字符規則(character collation ) 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE);3、鏈接數據庫(1)自動鏈接:“自動連接” 功能將在每個一頁面加載時被自動實例化數據庫類 在“application/config/autoload.php”文件 $autoload 數組里添加 database:$autoload['database'] = array();(2)手動鏈接:僅僅是一部分頁面要求數據庫連接,可以在需要的函數里手工添加如下代碼或者在類里手工添加以供該類使用 $this->load->database();擴展:配置數據庫連接值,用數組或DSN字符串傳遞 1、數組形式:上述鏈接數據庫時,都是鏈接到默認的數據庫。如果需要鏈接到自定義的數據庫,我們需要引用:$this->load->database('group_name'); 注:group_name 指的是存在于你的配置文件中的帶有數據庫連接信息的數組的名字如:$db['additional']['hostname'] = 'localhost';$db['additional']['username'] = 'root';$db['additional']['password'] = '111111';$db['additional']['database'] = 'test_other';$db['additional']['dbdriver'] = 'mysql';$db['additional']['dbprefix'] = '';$db['additional']['pconnect'] = FALSE;$db['additional']['db_debug'] = TRUE;$db['additional']['cache_on'] = FALSE;$db['additional']['cachedir'] = '';$db['additional']['char_set'] = 'utf8';$db['additional']['dbcollat'] = 'utf8_general_ci';$db['additional']['swap_pre'] = '';$db['additional']['autoinit'] = TRUE;$db['additional']['stricton'] = FALSE;$this->load->database('additional',true);2、DSN形式:通用表達式:$dsn = 'dbdriver://username:password@hostname/database';鏈接訪問:$this->load->database($dsn);注:當用 DSN 字符串連接時,要覆蓋配置默認值,則添加配置變量為查詢字符串。$dsn = 'dbdriver://username:password@hostname/database?char_set=utf8&dbcollat=utf8_general_ci&cache_on=true&cachedir=/path/to/cache'; $this->load->database($dsn);3、一個工程項目鏈接多個數據庫需要同時連接多于一個的數據庫,可以用以下方式來實現: $DB1 = $this->load->database('group_one', TRUE);$DB2 = $this->load->database('group_two', TRUE); 注意:改變 "group_one" 和 "group_two" 為你指定了連接屬性的組名 (或者通過上邊說過的連接數組的數組名)。通過設置函數的第二個參數為TRUE(boolean)來返回一個數據庫對象。當使用這種方法,將用對象名來執行操作命令而不是用戶向導模式,也就是說,將用以下方式執行數據庫操作: $DB1->query();$DB1->result();etc...4、重新連接 / 保持連接有效當正在進行一些重量級的PHP操作(例如處理圖片)時,如果超出了數據庫服務器的空閑超時限度,應該考慮在執行更多查詢之前使用 reconnect() 方法來向服務器發送ping命令,這樣可以保持或重新建立連接。 執行表達式:$this->db->reconnect();
新聞熱點
疑難解答