首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

CodeIgniter 內建資料庫類完整使用指南

     編輯:PHP 相關知識

在 CodeIgniter 框架中,資料庫操作是開發過程中最常見的任務之一。框架內建的資料庫類提供了直觀且強大的介面,讓開發者能夠輕鬆執行查詢、插入、更新等操作,無需撰寫冗長的原生 SQL 連接代碼。

初始化資料庫類

根據 application/config/database.php 的設定載入並初始化資料庫類:

$this->load->database();

載入後,即可在控制器、模型等任何位置透過 $this->db 存取資料庫物件。

查詢結果的多種獲取方式

以物件形式返回結果集

$query = $this->db->query('SELECT name, title, email FROM my_table');
foreach ($query->result() as $row) {
    echo $row->title;
    echo $row->name;
    echo $row->email;
}
echo 'Total Results: ' . $query->num_rows();

result() 回傳物件陣列,屬性名對應欄位名(如 $row->title)。

以關聯陣列形式返回結果集

$query = $this->db->query('SELECT name, title, email FROM my_table');
foreach ($query->result_array() as $row) {
    echo $row['title'];
    echo $row['name'];
    echo $row['email'];
}

result_array() 回傳鍵值對陣列(如 $row['title'])。

獲取單筆資料

物件形式:

$query = $this->db->query('SELECT name FROM my_table LIMIT 1');
$row = $query->row();
echo $row->name;

陣列形式:

$query = $this->db->query('SELECT name FROM my_table LIMIT 1');
$row = $query->row_array();
echo $row['name'];

資料新增操作

$sql = "INSERT INTO mytable (title, name) VALUES (".$this->db->escape($title).", ".$this->db->escape($name).")";
$this->db->query($sql);
echo $this->db->affected_rows();

使用 escape() 方法可自動處理特殊字元,防止 SQL 注入。

資料庫配置詳解

配置檔位於 application/config/database.php,採用多維陣列結構,支援多環境切換:

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "database_name";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

多環境配置範例

建立 test 環境群組:

$db['test']['hostname'] = "localhost";
$db['test']['username'] = "root";
$db['test']['password'] = "";
$db['test']['database'] = "database_name";
$db['test']['dbdriver'] = "mysql";
// ... 其他參數同 default

在配置檔中設定 $active_group = "test"; 即可切換環境。

Active Record 類

透過 $active_record = TRUE/FALSE 全域啟用或停用。啟用後可使用鏈式語法簡化查詢;若專案不需此功能,設為 FALSE 可減少初始化資源消耗。注意:Session 等核心類別可能依賴 Active Record。

關鍵參數說明

  • hostname:資料庫主機名(如 localhost)
  • username/password:登入憑證
  • database:目標資料庫名稱
  • dbdriver:驅動類型(mysql、postgres、odbc 等,必須小寫)
  • dbprefix:資料表前綴,支援單一資料庫部署多套 CI 專案
  • pconnect:是否使用持久連接
  • db_debug:是否顯示錯誤訊息
  • cache_on/cachedir:查詢快取設定
  • char_set/dbcollat:字元集與排序規則
  • port:連接埠(主要用於 PostgreSQL)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved