Thời gian đọc: 4 phút
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.
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:
/application/config/database.php
.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:
localhost
).mysqli
).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:
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.
/application/config/autoload.php
.$autoload['libraries']
và thêm 'database'
vào mảng này:$autoload['libraries'] = array('database');
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();
}
}
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.
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ả
}
public function insert_user($data) {
$this->db->insert('users', $data); // Chèn dữ liệu vào bảng 'users'
}
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
}
public function delete_user($id) {
$this->db->where('id', $id);
$this->db->delete('users'); // Xóa user có id tương ứ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.query()
:$query = $this->db->query("SELECT * FROM users WHERE id = 1");
return $query->result();
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.