[Module User] - Thư Viện Xử Lý Database - Freetuts
Có thể bạn quan tâm
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.
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.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.
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:
Bài viết này được đăng tại [free tuts .net]
// 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.
Từ khóa » Thư Viện Sql Là Gì
-
SQL Là Gì? Các Lệnh Cơ Bản Trong Lập Trình Cơ Sở Dữ Liệu SQL
-
Sql Là Gì? 6 Lý Do Tại Sao Bạn Nên Học SQL | TopDev
-
Thư Viện điều Khiển Các Loại Cơ Sở Dữ Liệu Khác Nhau Trong Java
-
SQL Là Gì? Hướng Dẫn Sử Dụng SQL Dành Cho Người Mới Bắt đầu
-
Các Câu Lệnh Thường Dùng Trong Ngôn Ngữ SQL - .vn
-
SQL Là Gì? - Học Sql Cơ Bản đến Nâng Cao - VietTuts
-
Ngôn Ngữ SQL Là Gì? - TỰ HỌC LẬP TRÌNH
-
[MSSQL-SMO]-Bộ Thư Viện Lập Trình Database SMO (SQL Server ...
-
SQL Là Gì? Phân Loại Câu Lệnh SQL
-
SQL Là Gì? Tại Sao Bạn Phải Học Cơ Sở Dữ Liệu SQL - Hanoi Aptech
-
TRUY VẤN DATABASE VỚI SQL ( PHẦN 1) - Viblo
-
SQL Là Gì? Ai Nên Theo Học SQL? - Viblo
-
Tìm Hiểu Sơ Lược SQL Là Gì? Các Chức Năng – Lịch Sử – Lệnh Chuẩn ...
-
Giới Thiệu SQLite Và Thực Hành Lệnh SQL