simple_query()
là phương thức cơ sở dữ liệu duy nhất trong CodeIgniter hoạt động như bạn đã chỉ ra. Như tài liệu nói:"Hầu hết người dùng sẽ hiếm khi sử dụng chức năng này."
Với một vài ngoại lệ, tất cả các phương thức Trình tạo truy vấn khác đều trả về DB_query_builder
ví dụ một CI_DB_result
đối tượng hoặc - trong trường hợp truy vấn kiểu "ghi" - một Boolean cho biết thành công hay thất bại. Một số ngoại lệ trả về một số nguyên, chuỗi hoặc hỗn hợp (một giá trị hoặc FALSE).
Tất cả các phương thức chấp nhận giá trị đầu vào đều thoát (hoặc tùy chọn không thoát) các giá trị được cung cấp.
Mặc dù Query Builder (QB) là một công cụ tuyệt vời nhưng nó thường không cần thiết. Sử dụng $this->db->query('your statement here');
thường hiệu quả hơn. Hiểu mục tiêu của QB là tạo một chuỗi được sử dụng theo nghĩa đen trong lệnh gọi tới db->query('a query string');
.
Vì vậy, thay vì nhập tất cả những thứ này ...
$this->db->select('id, name, email');
$this->db->from('customers');
$this->db->where('id', $id)
$this->db->where('active', $is_active)
$query = $this->get();
$result = $query->result();
Nhập vào phần sau sẽ tạo ra kết quả chính xác giống như ở trên vì nó cung cấp trực tiếp chuỗi truy vấn mà QB đã xây dựng trong đoạn mã trên. (Truy vấn cũng được thoát hoàn toàn.) Nhưng nó thực thi ít mã hơn để đến đó. (Với Ít đánh máy hơn.)
$query = $this->db->query("Select id, name, email from customers where id = ? and active = ?", [$id, $is_active]);
$result = $query->result();
Đây là ví dụ về việc sử dụng Liên kết truy vấn
Nghiên cứu mã nguồn cốt lõi (chủ yếu là trong các tệp 'trình điều khiển') sẽ cho bạn thấy nơi sử dụng simple_query()
là phù hợp và hữu ích.