Cách truy vấn dữ liệu trên CodeIgniter project

Nếu bạn là một lập trình viên thì nền tảng web CodeIgniter project chắc chắn không còn xa lạ quá với bạn đúng không? Bạn đã biết cách truy vấn dữ liệu trên CodeIgniter project chưa, nếu chưa biết thì đọc ngay bài viết dưới đây nhé!

CodeIgniter project là gì?

CodeIgniter là một nền tảng ứng dụng web (web application framework) nguồn mở được dùng để xây dựng các ứng dụng web động tương tác với PHP. Nó cho phép các nhà phát triển xây dựng một ứng dụng web nhanh hơn – so với việc viết mã hỗn tạp – bằng cách cung cấp 1 bộ thư viện đầy đủ cho các tác vụ thông thường, cũng như cung cấp một mô hình tương tác đơn giản và dễ hiểu cho việc kết nối tới những bộ thư viện đó.

>> Module quang SFP là gì? Cài đặt module quang như thế nào?

>> Thuê server Hp tại HN 

Cách truy vấn dữ liệu trên CodeIgniter project. Các phương thức truy vấn trên CodeIgniter bao gồm:

a. Hàm $this->db->query().

Hàm này sẽ submit một câu truy vấn. Ví dụ:

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

Hàm query() này trả về dữ liệu là một object nếu truy vấn sử dụng là dạng truy vấn đọc “SELECT”, còn sẽ trả về TRUE/FALSE nếu truy vấn là dạng truy vấn ghi “INSERT/UPDATE”.

b. Hàm $this->db->simple_query().

Hàm này là dạng đơn giản hóa của hàm $this->db->query() . Nó chỉ trả về TRUE/FALSE chứ không trả về tập dữ liệu nào đó, không lưu trữ truy vấn, và cũng không thiết lập được bộ đếm truy vấn. Hàm này đơn giản chỉ là submit một truy vấn.

Thực tế ta ít khi dùng hàm này.

2. Làm việc với việc tùy chỉnh tiền tố cho DB.

Nếu các bạn muốn sử dụng tiền tố cho tên của một bảng để sử dụng trong truy vấn SQL thuần, thì các bạn có thể sử dụng hàm sau:

$this->db->dbprefix('tablename');
// trả về là prefix_tablename

Vì một lý do nào đó bạn muốn thay đổi tiền tố theo chương trình sẵn mà không phải tạo một kết nối mới, bạn có thể dùng hàm sau:

$this->db->set_dbprefix('newprefix');
$this->db->dbprefix('tablename');
// trả về là newprefix_tablename

3. Bảo vệ danh tính.

Trong nhiều Cơ sở dữ liệu được khuyên rằng cần bảo vệ bảng và các trường tên, ví dụ việc sử dụng dấu ngoặc “ trên MySQL. Tuy các truy vấn bản ghi được tự động bảo vệ, nhưng nếu bạn muốn tự tùy chỉnh bảo vệ mộ định danh bất kỳ thì bạn có thể sử dụng hàm:

$this->db->protect_identifiers('table_name');

Hàm này cũng chèn một tiền tố bảng vào bảng bạn sử dụng, giả sử bạn có thiết lập một tiền tố cho Database của bạn trong file config.php, bạn có thể kích hoạt chúng bằng cách thiết lập giá trị TRUE với tham số thứ hai của hàm :

$this->db->protect_identifiers('table_name', TRUE);

4. Các truy vấn Xóa dấu.

Trên thực tế việc bảo mất dữ liệu sẽ rất hiệu quả nếu dữ liệu của bạn trước khi được truyền vào Database được xóa dấu (tức là loại bỏ các ký tự đặc biệt ra khỏi dữ liệu). CodeIgniter có 3 phương thức để giúp các bạn thực hiện công việc này:

a. Hàm $this->db->escape().

Hàm này xác định kiểu dữ liệu để nó có thể loại bỏ chỉ với dữ liệu kiểu chuỗi. Nó cũng tự động chèn các dấu ngoặc đơn quanh dữ liệu , nên bạn không cần phải thực hiện việc này thủ công nữa:

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

b. Hàm $this->db->escape_str()

Hàm này giúp loại bỏ ký tự đặc biệt trong dữ liệu truyền vào, bất kể kiểu dữ liệu là gì. Trên thực tế bạn sẽ thường sử dụng hàm escapse() ở trên hơn là hàm này :

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

c. Hàm $this->db->escape_like_str().

Hàm này nên được sử dụng khi các chuỗi được sử dụng trong câu truy vấn LIKE, Ví dụ :

$search = '20% raise';
$sql = "SELECT id FROM table WHERE column LIKE '%".$this->db->escape_like_str($search)."%'";

5. Các truy vấn gắn kết.

Các gắn kết giúp bạn đơn giản cú pháp của câu truy vấn. Ví dụ:

$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?"; 
$this->db->query($sql, array(3, 'live', 'Rick'));

Lưu ý: Các dấu ? trong biểu thức truy vấn được tự động thay thế bằng các giá trị trong mảng (tham số thứ hai) của hàm query(). Việc sử dụng các gắn kết này cũng sẽ giúp bạn tự động loại bỏ được ký tự đặc biệt trong dữ liệu truyền vào, làm tạo ra các truy vấn an toàn hơn.

Kết luận : Kiến thức thì vô hạn, cách làm thì cũng ngày càng đổi mới và chúng ta luôn phải update nó thường xuyên để đảm bảo bắt kịp xu thế mới của các nền tảng khác. Bài viết này chúng tôi đã chia sẻ với các bạn các hàm truy vấn – query() được CodeIgniter hỗ trợ rồi. Nếu bạn nào còn cách làm nào khác hay hơn, nhanh hơn thì chia sẻ với mọi người qua bình luận bên dưới nhé.

Cảm ơn mọi người

5/5 - (1 bình chọn)
5/5 (1 Review)

Leave a Reply