Kết nối cơ sở dữ liệu MySQL trong CodeIgniter

Tạo bởi Hoàng Vũ, chỉnh sửa cuối lúc 2 tháng 4, 2025

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 BuilderActive 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:

  1. Cài đặt MySQL (nếu chưa có).
  2. Cấu hình database trong CodeIgniter.
  3. Kiểm tra kết nối.
  4. 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.
Website Logo

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.

Bình luận

Website Logo

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

Chúng Tôi Trên

Bạn đang muốn học về lập trình website?

Bạn cần nâng cao kiến thức chuyên nghiệp hơn để nâng cao cơ hội nghề nghiệp? Liên hệ