Database library

Một phần của tài liệu Xây dựng nền tảng hỗ trợ lập trình web dựa trên mô hình mvc (Trang 34 - 36)

Trước khi làm việc với thư viện này, cần thiết đặt các thông số kết nối như username,

password, tên database trong file system/config/database.php theo mẫu sau: $currentConnection = 'default'; $db['default']['hostname'] = "localhost"; $db['default']['username'] = "root"; $db['default']['password'] = ""; $db['default']['database'] = "database_name_1"; $db['default']['dbdriver'] = "mysql";

Lý do mảng $db phải ở dạng hai chiều có liên quan tới tính năng hỗ trợ nhiều kết nối tới nhiều cơ sở dữ liệu của Hiphop framework. Ví dụ, trong ứng dụng của bạn cần tới một kết nối tới database khác, chỉ cần thêm thiết đặt sau vào file database.php bên trên:

$db['test']['hostname'] = "localhost"; $db['test']['username'] = "root"; $db['test']['password'] = "";

$db['test']['database'] = "database_name_2"; $db['test']['dbdriver'] = "mysql";

“Test” là một tên ngẫu nhiên ta đặt cho kết nối thứ hai. Tương tự chúng ta có thể định nghĩa các kết nối khác một cách dễ dàng.

Theo mặc định, sau khi câu lệnh: $this->load->database();

được thưc hiện, kết nối default sẽ mặc định được nạp vào controller (cụ thể là biến

Sau khi nạp một kết nối database, chúng ta có thể dùng được các phương thức trong lớp Database để tương tác với database qua kết nối này.

a. escape()

Tự động thêm ký tự nháy đơn (‘) cho tham số trong hàm. Hàm này đặc biệt hữu ích trong việc viết các câu truy vấn an toàn nhằm tránh lỗi SQL Injection.

$sql = "INSERT INTO table (title) VALUES(".$this->db->escape($title).")";

b. query()

$query = $this->db->query('YOUR QUERY’);

Hàm query() trả về một đối tượng kết quả database. Khi câu lệnh Query có kiểu “Đọc” (SELECT), nó trả về một đối tượng và khi đó chúng ta có thể dùng các hàm result_array(), num_rows()… dưới đây. Khi câu lệnh query là kiểu “Ghi”

(UPDATE, DELETE, INSERT), nó trả về TRUE hoặc FALSE tương ứng với trạng thái thành công hay thất bị của câu truy vấn.

c.result_array

Trả về kết quả truy vấn dưới dạng mảng, mảng rỗng khi không có kết quả nào được tìm thấy trong câu truy vấn. Hàm này thường được sử dụng trong các câu lệnh lặp:

$query = $this->db->query("YOUR QUERY"); foreach ($query->result_array as $row) { echo $row['title']; echo $row['name']; echo $row['body']; } d.num_rows

Hàm này trả lại số dòng của kết quả câu truy vấn

$query = $this->db->query('SELECT * FROM my_table'); echo $query->num_rows;

Hàm này trả về một hàng kết quả của câu truy vấn. Tham số trong hàm chỉ ra thứ tự của hàng được lấy, nếu hàm không chứa tham số, mặc định hàng đầu tiên của truy vấn sẽ được trả về.

$query = $this->db->query("YOUR QUERY"); if ($query->num_rows() > 0) { $row = $query->row(); echo $row['title']; echo $row['name']; echo $row['body']; }

Một phần của tài liệu Xây dựng nền tảng hỗ trợ lập trình web dựa trên mô hình mvc (Trang 34 - 36)