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

CodeIgniter 資料庫連線、配置與基本操作完整教學

     編輯:PHP 綜合知識

前言

CodeIgniter(CI)作為輕量級 PHP 框架,其資料庫類提供了優雅的 Active Record 模式與傳統查詢介面。本文以 PostgreSQL 為例,完整示範從建表、配置、連線到 CRUD 操作的全流程,適用於 CI 2.x/3.x 版本。

一、準備測試資料庫

-- 建立資料庫與資料表
CREATE DATABASE test;
CREATE TABLE users(
    id INT NOT NULL,
    name VARCHAR(10),
    pwd VARCHAR(10),
    email VARCHAR(20)
);

-- 插入測試資料
INSERT INTO users VALUES(1,'shunping','shunping','aa@163.com');
INSERT INTO users VALUES(2,'shunping2','shunping2','bb@163.com');

二、資料庫配置檔設定

編輯 application/config/database.php:

$active_group = "default";
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "postgres";
$db['default']['password'] = "admin";
$db['default']['database'] = "test";
$db['default']['dbdriver'] = "postgre";      // PostgreSQL 驅動
$db['default']['dbprefix'] = "";
$db['default']['active_r'] = TRUE;          // 啟用 Active Record
$db['default']['pconnect'] = FALSE;         // 非持久連線
$db['default']['db_debug'] = TRUE;          // 開啟除錯
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['port'] = "5432";            // PostgreSQL 預設埠

關鍵參數說明

  • dbdriver:支援 mysql、mysqli、postgre、odbc、pdo 等
  • active_r:啟用後可使用 $this->db->get() 等 Active Record 方法
  • pconnect:生產環境建議 FALSE,避免連線洩漏

三、控制器實作資料查詢

建立 application/controllers/db1.php:

<?php
class Db1 extends Controller {
    function index() {
        // 載入資料庫類庫(自動讀取 config/database.php)
        $this->load->database();
        
        // 傳統 SQL 查詢
        $query = $this->db->query("SELECT name, pwd, email FROM users");
        
        // 遍歷結果(回傳物件陣列)
        foreach ($query->result() as $row) {
            echo $row->name;
            echo $row->pwd;
            echo $row->email . "<br>";
        }
        
        echo "Total Result==" . $query->num_rows();
    }
}
?>

結果物件常用方法

  • result():回傳物件陣列
  • result_array():回傳關聯陣列
  • row():單筆結果物件
  • row_array():單筆關聯陣列
  • num_rows():筆數

四、瀏覽器驗證

訪問:https://localhost:8888/index.php/db1

正常應輸出兩筆使用者資料與總筆數。

五、常見連線問題排查

  1. 驅動未啟用:檢查 php.ini 是否載入 extension=pdo_pgsql 或 extension=pgsql
  2. 埠號錯誤:PostgreSQL 預設 5432,確認 postgresql.conf 的 listen_addresses
  3. 權限不足:pg_hba.conf 需允許該使用者從 localhost 連線
  4. 防火牆阻擋:確認 5432 埠對本機開放

六、進階:Active Record 鏈式操作範例

// 插入
$data = array('name' => 'test', 'email' => 'test@example.com');
$this->db->insert('users', $data);

// 更新
$this->db->where('id', 1);
$this->db->update('users', array('name' => 'updated'));

// 刪除
$this->db->delete('users', array('id' => 2));

// 條件查詢
$this->db->select('name, email');
$this->db->from('users');
$this->db->where('id >', 0);
$this->db->order_by('id', 'DESC');
$query = $this->db->get();

七、總結

CodeIgniter 資料庫類封裝良好,配置簡單且支援多種驅動。掌握 database.php 設定與 $this->db 核心方法,即可高效完成大多數資料操作需求。建議專案中統一使用 Active Record 模式,提升程式碼可讀性與安全性(自動跳脫)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved