PHP MVC CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

[Module User] - Thư viện xử lý database

Chúng ta đang lập trình hướng thủ tục nên phải tận dụng hàm để tối ưu hóa và rút ngắn những đoạn code lại. Để làm được như vậy thì ta phải tạo ra những thư viện dùng chung cho toàn bộ các module, mỗi thư viện có tính chất giống nhau ta sẽ đặt trong một file và nằm trong thư mục libs.

Trong bài này ta sẽ viết những hàm dùng để xử lý database trước, những hàm này sẽ thực hiện các thao tác như kết nối CSDL, ngắt kết nối CSDL, lấy danh sách, lấy chi tiết, thêm xóa sửa. Đây là những thao tác thường xuyên được sử dụng nên ta sẽ tạo một thư viện tên database.php để các module sử dụng chung.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Thư viện xử lý database PHP

Vì các bạn đang học căn bản nên mình sẽ sử dụng MySQLi Procedural. Nếu bạn chưa rành về cách sử dụng MySQLi thì hãy tham khảo series PHP và MySQL.

Đầu tiên bạn mở file libs/database.php lên, sau đó copy và pass đoạn code dưới đây:

 

// Biến lưu trữ kết nối
$conn = null;

// Hàm kết nối
function db_connect(){
    global $conn;
    if (!$conn){
        $conn = mysqli_connect('localhost', 'root', 'vertrigo', 'php_example') 
                or die ('Không thể kết nối CSDL');
        mysqli_set_charset($conn, 'UTF-8');
    }
}

// Hàm ngắt kết nối
function db_close(){
    global $conn;
    if ($conn){
        mysqli_close($conn);
    }
}

// Hàm lấy danh sách, kết quả trả về danh sách các record trong một mảng
function db_get_list($sql){
    db_connect();
    global $conn;
    $data  = array();
    $result = mysqli_query($conn, $sql);
    while ($row = mysqli_fetch_assoc($result)){
        $data[] = $row;
    }
    return $data;
}

// Hàm lấy chi tiết, dùng select theo ID vì nó trả về 1 record
function db_get_row($sql){
    db_connect();
    global $conn;
    $result = mysqli_query($conn, $sql);
    $row = array();
    if (mysqli_num_rows($result) > 0){
        $row = mysqli_fetch_assoc($result);
    }    
    return $row;
}

// Hàm thực thi câu truy  vấn insert, update, delete
function db_execute($sql){
    db_connect();
    global $conn;
    return mysqli_query($conn, $sql);
}

 

Mình sẽ giải thích qua về những hàm trên.

Biến kết nối:

 

$conn = null;

 

Chúng ta đang sử dụng hàm nên để tối ưu ta phải khai báo một biến kết nối toàn cục, sau đó các câu truy vấn sẽ dùng chung biến kết nối này.

Hàm kết nối:

 

function db_connect(){
    global $conn;
    if (!$conn){
        $conn = mysqli_connect('localhost', 'root', 'vertrigo', 'php_example') 
                or die ('Không thể kết nối CSDL');
        mysqli_set_charset($conn, 'UTF-8');
    }
}

 

Trong hàm kết nối để sử dụng được biến $conn thì ta sẽ dùng từ khóa global đặt trước nó. Để tránh trường hợp hàm này bị gọi nhiều lần sẽ dẫn đến kết nối nhiều lần thì ta sẽ kiểm tra nó đã được kết nối chưa rồi mới tiến hành kết nối.

Hàm ngắt kết nối:

 

function db_close(){
    global $conn;
    if ($conn){
        mysqli_close($conn);
    }
}

 

Trước khi ngắt kết nối ta phải kiểm tra nó đã kết nối chưa, nếu chưa thì không cần thực hiện thao tác này.

Hàm lấy danh sách:

 

function db_get_list($sql){
    db_connect();
    global $conn;
    $data  = array();
    $result = mysqli_query($conn, $sql);
    while ($row = mysqli_fetch_assoc($result)){
        $data[] = $row;
    }
    return $data;
}

 

Hàm này dùng cho câu truy vấn SELECT dùng để lấy danh sách records. Kết quả nó trả về dạng mảng kết hợp các records.

Hàm lấy chi tiết:

 

function db_get_row($sql){
    db_connect();
    global $conn;
    $result = mysqli_query($conn, $sql);
    $row = array();
    if (mysqli_num_rows($result) > 0){
        $row = mysqli_fetch_assoc($result);
    }    
    return $row;
}

 

Hàm này dùng cho câu lệnh SELECT lấy chi tiết mộ record nào đó, thường thì chúng ta lấy theo ID. Nếu kết quả trả về nhiều hơn 1 record thì nó sẽ trả về record đầu tiên.

Hàm truy vấn insert, update, delete:

 

function db_execute($sql){
    db_connect();
    global $conn;
    return mysqli_query($conn, $sql);
}

 

Hàm này để thực thi các câu truy vấn như insert, update, delete vì những câu truy vấn này có kết quả trả về là TRUE hoặc FALSE chứ không phải là lấy danh sách như hai hàm trên.

2. Lời kết

Như vậy tổng cộng chúng ta có 5 hàm thường dùng để xử lý database, những hàm này sẽ được dùng cho toàn bộ các module. Các bạn hãy đọc kỹ từng hàm để hiểu ý tưởng của thư viện này để sau này biết cách sử dụng nhé. Bài tiếp theo chúng ta sẽ thảo luận về thư viện Session.

Cùng chuyên mục:

Hàm key_exists() trong PHP

Hàm key_exists() trong PHP

Cách sử dụng key_exists() trong PHP

Hàm mysqli_fetch_row() trong PHP

Hàm mysqli_fetch_row() trong PHP

Cách sử dụng mysqli_fetch_row() trong PHP

Hàm end() trong PHP

Hàm end() trong PHP

Cách sử dụng end() trong PHP

Hàm mysqli_field_count() trong PHP

Hàm mysqli_field_count() trong PHP

Cách sử dụng mysqli_field_count() trong PHP

Hàm count() trong PHP

Hàm count() trong PHP

Cách sử dụng count() trong PHP

Hàm mysqli_field_seek() trong PHP

Hàm mysqli_field_seek() trong PHP

Cách sử dụng mysqli_field_seek() trong PHP

Hàm compact() trong PHP

Hàm compact() trong PHP

Cách sử dụng compact() trong PHP

Hàm mysqli_field_tell() trong PHP

Hàm mysqli_field_tell() trong PHP

Cách sử dụng mysqli_field_tell() trong PHP

Hàm array_values() trong PHP

Hàm array_values() trong PHP

Cách sử dụng array_values() trong PHP

Hàm mysqli_free_result() trong PHP

Hàm mysqli_free_result() trong PHP

Cách sử dụng mysqli_free_result() trong PHP

Hàm array_unshift() trong PHP

Hàm array_unshift() trong PHP

Cách sử dụng array_unshift() trong PHP

Hàm mysqli_get_charset() trong PHP

Hàm mysqli_get_charset() trong PHP

Cách sử dụng mysqli_get_charset() trong PHP

Hàm array_shift() trong PHP

Hàm array_shift() trong PHP

Cách sử dụng array_shift() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Cách sử dụng mysqli_get_client_stats() trong PHP

Hàm array_unique() trong PHP

Hàm array_unique() trong PHP

Cách sử dụng array_unique() trong PHP

Hàm mysqli_get_client_version() trong PHP

Hàm mysqli_get_client_version() trong PHP

Cách sử dụng mysqli_get_client_version() trong PHP

Hàm array_uintesect() trong PHP

Hàm array_uintesect() trong PHP

Cách sử dụng array_uintesect() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Cách sử dụng mysqli_get_connection_stats() trong PHP

Hàm array_sum() trong PHP

Hàm array_sum() trong PHP

Cách sử dụng array_sum() trong PHP

Hàm mysqli_get_host_info() trong PHP

Hàm mysqli_get_host_info() trong PHP

Cách sử dụng mysqli_get_host_info() trong PHP

Top