Trong CodeIgniter, việc load library Database rất cần thiết để thực hiện các thao tác tương tác với cơ sở dữ liệu như truy vấn, thêm, sửa, xóa dữ liệu, v.v. CodeIgniter cung cấp một cách rất dễ dàng để kết nối với cơ sở dữ liệu bằng cách sử dụng Database Library.

1. Cấu hình kết nối cơ sở dữ liệu

Trước khi load thư viện Database, bạn cần cấu hình kết nối với cơ sở dữ liệu trong file cấu hình. Các bước để cấu hình cơ sở dữ liệu:

  • Mở file: /application/config/database.php.
  • Tại đây, bạn có thể cấu hình các thông tin cần thiết như tên cơ sở dữ liệu, người dùng, mật khẩu, v.v.

Ví dụ:

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'my_database',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

Trong đoạn mã trên:

  • hostname: Địa chỉ máy chủ cơ sở dữ liệu (ví dụ: localhost).
  • username: Tên người dùng của cơ sở dữ liệu.
  • password: Mật khẩu của người dùng.
  • database: Tên cơ sở dữ liệu mà bạn muốn kết nối.
  • dbdriver: Loại cơ sở dữ liệu (ví dụ: mysqli).

2. Load Database Library

Sau khi cấu hình xong, bạn có thể load Database Library trong controller hoặc model. CodeIgniter cung cấp hai cách chính để load thư viện này:

2.1. Tự động load Database trong toàn bộ ứng dụng

Nếu bạn muốn database được load tự động cho toàn bộ ứng dụng (không cần gọi thủ công trong từng controller), bạn có thể cấu hình trong file autoload.php.

  • Mở file: /application/config/autoload.php.
  • Tìm dòng chứa $autoload['libraries'] và thêm 'database' vào mảng này:
$autoload['libraries'] = array('database');

2.2. Load thủ công trong một controller hoặc model cụ thể

Bạn cũng có thể chỉ load Database Library trong các controller hoặc model mà bạn cần sử dụng.

Ví dụ trong controller:

class MyController extends CI_Controller {
    public function __construct() {
        parent::__construct();
        $this->load->database(); // Load thư viện Database
    }

    public function index() {
        // Các thao tác liên quan đến cơ sở dữ liệu
    }
}

Trong model:

class MyModel extends CI_Model {
    public function __construct() {
        parent::__construct();
        $this->load->database(); // Load thư viện Database
    }

    public function get_data() {
        $query = $this->db->get('my_table');
        return $query->result();
    }
}

3. Sử dụng Database trong CodeIgniter

Khi bạn đã load thư viện cơ sở dữ liệu, bạn có thể sử dụng nó để thực hiện các truy vấn cơ bản như SELECT, INSERT, UPDATE, và DELETE. CodeIgniter cung cấp một Query Builder rất mạnh mẽ để giúp bạn thực hiện các truy vấn một cách dễ dàng.

Ví dụ 1: Truy vấn SELECT

public function get_users() {
    $query = $this->db->get('users');  // Truy vấn lấy tất cả dữ liệu từ bảng 'users'
    return $query->result_array();     // Trả về mảng kết quả
}

Ví dụ 2: Truy vấn INSERT

public function insert_user($data) {
    $this->db->insert('users', $data); // Chèn dữ liệu vào bảng 'users'
}

Ví dụ 3: Truy vấn UPDATE

public function update_user($id, $data) {
    $this->db->where('id', $id);
    $this->db->update('users', $data); // Cập nhật dữ liệu của user có id tương ứng
}

Ví dụ 4: Truy vấn DELETE

public function delete_user($id) {
    $this->db->where('id', $id);
    $this->db->delete('users'); // Xóa user có id tương ứng
}

4. Lưu ý

  • Khi sử dụng Query Builder của CodeIgniter, bạn không cần viết trực tiếp các câu lệnh SQL, mà sử dụng các phương thức có sẵn để tương tác với cơ sở dữ liệu.
  • Nếu cần sử dụng SQL thuần túy, bạn có thể dùng phương thức query():
$query = $this->db->query("SELECT * FROM users WHERE id = 1");
return $query->result();

Kết Luận

Sử dụng Database Library trong CodeIgniter rất dễ dàng và thuận tiện. Việc cấu hình kết nối cơ sở dữ liệu đơn giản và việc truy vấn dữ liệu có thể thực hiện qua Query Builder hoặc SQL thuần túy. Bạn có thể lựa chọn cách load thư viện này sao cho phù hợp với yêu cầu dự án của mình.