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.