Kết nối cơ sở dữ liệu MySQL trong CodeIgniter
Trong một ứng dụng web, việc kết nối với cơ sở dữ liệu là một bước quan trọng giúp lưu trữ và truy xuất dữ liệu. CodeIgniter hỗ trợ làm việc với MySQL thông qua Query Builder và Active Record, giúp lập trình viên thao tác với database dễ dàng hơn.
Mục tiêu bài học:
- Hiểu cách CodeIgniter kết nối với MySQL.
- Biết cách cấu hình database trong CodeIgniter 3 & 4.
- Kiểm tra kết nối và thực hiện truy vấn đơn giản.
- Thực hành tạo kết nối và kiểm tra với truy vấn SQL cơ bản.

Kết nối cơ sở dữ liệu MySQL
1. Giới thiệu cách kết nối CodeIgniter với MySQL
CodeIgniter hỗ trợ kết nối với nhiều loại cơ sở dữ liệu như MySQL, PostgreSQL, SQLite... Trong bài này, chúng ta tập trung vào MySQL – hệ quản trị cơ sở dữ liệu phổ biến trong phát triển web.
Các bước để kết nối CodeIgniter với MySQL:
- Cài đặt MySQL (nếu chưa có).
- Cấu hình database trong CodeIgniter.
- Kiểm tra kết nối.
- Thực hiện truy vấn kiểm tra dữ liệu.
2. Cấu hình cơ sở dữ liệu trong CodeIgniter
CodeIgniter 4
File cấu hình: app/Config/Database.php
Mở file Database.php
và chỉnh sửa thông tin kết nối:
public $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'ci4_database',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => true,
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
];
Giải thích các thông số quan trọng:
-
'hostname' => 'localhost'
→ Máy chủ MySQL (local). -
'username' => 'root'
→ Tài khoản MySQL mặc định. -
'password' => ''
→ Mật khẩu MySQL (mặc định là rỗng trên XAMPP). -
'database' => 'ci4_database'
→ Tên database cần kết nối. -
'DBDriver' => 'MySQLi'
→ Sử dụng MySQLi làm driver kết nối.
Nạp database trong Controller
$db = \Config\Database::connect();
CodeIgniter 3
File cấu hình: application/config/database.php
Mở file database.php
và chỉnh sửa thông tin kết nối:
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'ci3_database',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
);
Cách kết nối database trong Controller (CI3):
$this->load->database();
3. Kiểm tra kết nối và thực hiện truy vấn đơn giản
CodeIgniter 4
Cách kiểm tra kết nối:
$db = \Config\Database::connect();
if ($db->connect()) {
echo "Kết nối thành công!";
} else {
echo "Kết nối thất bại!";
}
Thực hiện truy vấn kiểm tra
$query = $db->query("SELECT DATABASE() AS db_name");
$row = $query->getRow();
echo "Đang kết nối tới database: " . $row->db_name;
CodeIgniter 3
Cách kiểm tra kết nối:
if ($this->db->conn_id) {
echo "Kết nối thành công!";
} else {
echo "Kết nối thất bại!";
}
Thực hiện truy vấn kiểm tra
$query = $this->db->query("SELECT DATABASE() AS db_name");
$row = $query->row();
echo "Đang kết nối tới database: " . $row->db_name;
4. Thực hành: Tạo kết nối đến MySQL và kiểm tra bằng truy vấn SQL cơ bản
Bước 1: Tạo database trong MySQL
Sử dụng phpMyAdmin hoặc MySQL command line để tạo database:
CREATE DATABASE ci_database;
USE ci_database;
Bước 2: Cấu hình kết nối database trong CodeIgniter
- Với CI4, chỉnh sửa
app/Config/Database.php
. - Với CI3, chỉnh sửa
application/config/database.php
.
Bước 3: Tạo bảng kiểm tra kết nối
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100) UNIQUE
);
Bước 4: Viết truy vấn kiểm tra trong Controller
CodeIgniter 4:
$db = \Config\Database::connect();
$query = $db->query("SELECT COUNT(*) AS total_users FROM users");
$row = $query->getRow();
echo "Số lượng người dùng trong bảng users: " . $row->total_users;
CodeIgniter 3:
$query = $this->db->query("SELECT COUNT(*) AS total_users FROM users");
$row = $query->row();
echo "Số lượng người dùng trong bảng users: " . $row->total_users;
Kết luận
Tóm tắt nội dung chính:
- CodeIgniter hỗ trợ kết nối với MySQL thông qua cấu hình trong Database.php.
- Cách nạp database trong CodeIgniter 3 (
$this->load->database()
) và CodeIgniter 4 (\Config\Database::connect()
). - Kiểm tra kết nối bằng truy vấn SQL đơn giản.
- Thực hành tạo database và kiểm tra dữ liệu với MySQL.

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.
Xem thêm

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.
Liên hệ công việc qua email dưới đây.
lhvuctu@gmail.com