Codeigniter Framework: Tương tác cơ sở dữ liệu trên model
Số trang: 11
Loại file: pdf
Dung lượng: 129.74 KB
Lượt xem: 13
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Codeigniter Framework: Tương tác cơ sở dữ liệu trên model.Ở bài trước, chúng ta đã tìm hiểu qua về quy trình làm việc trên view của codeigniter framework. Tiếp tục ở bài này, chúng ta sẽ cùng phân tích và tìm hiểu thêm về quy trình tương tác cơ sở dữ liệu trên model như thế nào. Để từ đó vận dụng tốt chúng trong quá trình viết các ứng dụng sau này.Vậy trước hết, ta tìm hiểu xem model là gì ?. Và tại sao phải sử dụng model?. Model là tầng xử lý những tác vụ liên quan...
Nội dung trích xuất từ tài liệu:
Codeigniter Framework: Tương tác cơ sở dữ liệu trên modelCodeigniter Framework: Tương tác cơ sở dữ liệu trên modelỞ bài trước, chúng ta đã tìm hiểu qua về quy trình làm việc trên view củacodeigniter framework. Tiếp tục ở bài này, chúng ta sẽ cùng phân tích vàtìm hiểu thêm về quy trình tương tác cơ sở dữ liệu trên model như thế nào.Để từ đó vận dụng tốt chúng trong quá trình viết các ứng dụng sau này.Vậy trước hết, ta tìm hiểu xem model là gì ?. Và tại sao phải sử dụng model?.Model là tầng xử lý những tác vụ liên quan đến tương tác cơ sở dữ liệu từnhững yêu cầu của controller. Model xử lý và trả về kết quả dưới dạng mộtmảng dữ liệu, khi đó thông qua view ta sẽ đẩy nội dung của mảng dữ liệu ấyra bên ngoài. Việc tách biệt tầng model có rất nhiều thuận lợi, trước là dễquản lý sau là dễ nâng cấp và phát triển trong tương lai của mã nguồn.Model trong codeigniter cũng vậy, cũng có những cách tương tác riêng biệt.Bài viết này sẽ hướng dẫn các bạn những tháo tác chính trong xử lý modelnhư thế nào.Để có thể tương tác với cơ sở dữ liệu trong codeigniter thì trước hết ta phảicấu hình thông tin kết nối với CSDL tại file database.php trong thư mụcapplication/config.Chú ý 4 thông tin sau:1 $db[default][hostname] = localhost;2 $db[default][username] = root;3 $db[default][password] = ;4 $db[default][database] = qhonline;Vì tôi đang chạy là xampp, nên phần mật khẩu sẽ là rỗng và tên CSDL củatôi sẽ là qhonline.Nếu chúng ta đã cấu hình xong trong file database này. Thì bất cứ lúc nào,nếu chúng ta muốn kết nối với CSDL. Chúng ta chỉ việc gọi phương thức:1 $this->load->database();Kế tới sẽ là tương tác với model, tại thư mục models trong application ta tạo1 file ví dụ như muser.php. Lưu ý là không được đặt trùng tên với controller.Ví dụ: controller là user.php thì model không được phép là user.php. Vì nhưthế hệ thống sẽ báo lỗi do không thể hiểu bạn đang muốn gọi controller haymodel. Do vậy, trong trường hợp này ta dùng thêm chữ m đứng trước đểphân biệt.1 03 public function __construct(){04 parent::__construct();05 $this->load->database();06 }07 public function listall(){08 $query=$this->db->get(user);09 return $query->result_array();10 }11 }Phương thức listall() được thêm vào. $this->db->get(user) là một activerecord nó tương đương với câu truy vấn thường của chúng ta vậy select *from user. Mục đích có active record là để rút gọn lại các câu truy vấn, hỗtrợ người dùng thao tác nhanh hơn và chuyên nghiệp hơn trong quá trình táisử dụng lại thư viện.Lệnh result_array() sẽ đem toàn bộ record đưa ra bên ngoài dưới dạng mảng.Tiếp tục, trong application/controllers ta tạo file user.php với nội dung:01 $this->Muser->listall(). Cuối cùng ta xem cấu trúc mảng của chúng bằng cặpthẻ pre và print_r.Vậy để nạp 1 model ta có cách nạp như sau:1 $this->load->Model(Tên_Model);Sau khi đã nạp xong, ta có cách gọi phương thức trong model như sau:1 $this->Tên_Model->Tên_Phương_Thức();Một số phương thức tương tác cơ sở dữ liệu trên model mà ta thường dùngtrong codeigniter framework1 - Thao tác liệt kê và nhận trả dữ liệu:+ Lựa chọn tên cột cần lấy1 $this->db->select(tên cột 1, tên cột 2);+ Truy vấn với điều kiện:1 $this->db->where(trường,Giá trị);+ Sắp xếp kết quả trả về theo 1 trường nào đó.1 $this->db->order_by(tên cột asc hoặc desc);+ Giới hạn kết quả trả về:1 $this->db->limit(Số record trên 1 trang,Vị trí bắt đầu);+ Lấy tất cả record từ câu truy vấn:1 $query->result_array();+ Lấy 1 record trong dữ liệu:1 $query->row_array();+ Đếm số xem có bao nhiêu dòng:1 $query->num_rows();Ví dụ:1 public function listall(){2 $this->db->select(username,password);3 $this->db->where(level,2);4 $this->db->order_by(id desc);5 $this->db->limit(1,0);6 $query=$this->db->get(user);7 return $query->result_array();8 }2- Thao tác thêm, xóa, sửa dữ liệu:+ Thêm dữ liệu1 $this->db->insert(tên bảng,mảng dữ liệu);Ví dụ:1 public function insert_user($data){2 $this->db->insert(user,$data);3 }+ Sửa dữ liệu1 $this->db->update(tên bảng,mảng dữ liệu);Ví dụ:1 public function update_user($data,$id){2 $this->db->where(id,$id);3 $this->db->update(user,$data)l4 }+ Xóa dữ liệu1 $this->db->delete(tên_bảng);Ví dụ:1 public function delete_user($id){2 $this->db->where(id,$id);3 $this->db->delete(user);4 }Với biến $data của chúng ta là một mảng dữ liệu:Ví dụ:1 $data=array(2 username => kenny,3 password => 12345,4 website => qhonline.info,5 email = ...
Nội dung trích xuất từ tài liệu:
Codeigniter Framework: Tương tác cơ sở dữ liệu trên modelCodeigniter Framework: Tương tác cơ sở dữ liệu trên modelỞ bài trước, chúng ta đã tìm hiểu qua về quy trình làm việc trên view củacodeigniter framework. Tiếp tục ở bài này, chúng ta sẽ cùng phân tích vàtìm hiểu thêm về quy trình tương tác cơ sở dữ liệu trên model như thế nào.Để từ đó vận dụng tốt chúng trong quá trình viết các ứng dụng sau này.Vậy trước hết, ta tìm hiểu xem model là gì ?. Và tại sao phải sử dụng model?.Model là tầng xử lý những tác vụ liên quan đến tương tác cơ sở dữ liệu từnhững yêu cầu của controller. Model xử lý và trả về kết quả dưới dạng mộtmảng dữ liệu, khi đó thông qua view ta sẽ đẩy nội dung của mảng dữ liệu ấyra bên ngoài. Việc tách biệt tầng model có rất nhiều thuận lợi, trước là dễquản lý sau là dễ nâng cấp và phát triển trong tương lai của mã nguồn.Model trong codeigniter cũng vậy, cũng có những cách tương tác riêng biệt.Bài viết này sẽ hướng dẫn các bạn những tháo tác chính trong xử lý modelnhư thế nào.Để có thể tương tác với cơ sở dữ liệu trong codeigniter thì trước hết ta phảicấu hình thông tin kết nối với CSDL tại file database.php trong thư mụcapplication/config.Chú ý 4 thông tin sau:1 $db[default][hostname] = localhost;2 $db[default][username] = root;3 $db[default][password] = ;4 $db[default][database] = qhonline;Vì tôi đang chạy là xampp, nên phần mật khẩu sẽ là rỗng và tên CSDL củatôi sẽ là qhonline.Nếu chúng ta đã cấu hình xong trong file database này. Thì bất cứ lúc nào,nếu chúng ta muốn kết nối với CSDL. Chúng ta chỉ việc gọi phương thức:1 $this->load->database();Kế tới sẽ là tương tác với model, tại thư mục models trong application ta tạo1 file ví dụ như muser.php. Lưu ý là không được đặt trùng tên với controller.Ví dụ: controller là user.php thì model không được phép là user.php. Vì nhưthế hệ thống sẽ báo lỗi do không thể hiểu bạn đang muốn gọi controller haymodel. Do vậy, trong trường hợp này ta dùng thêm chữ m đứng trước đểphân biệt.1 03 public function __construct(){04 parent::__construct();05 $this->load->database();06 }07 public function listall(){08 $query=$this->db->get(user);09 return $query->result_array();10 }11 }Phương thức listall() được thêm vào. $this->db->get(user) là một activerecord nó tương đương với câu truy vấn thường của chúng ta vậy select *from user. Mục đích có active record là để rút gọn lại các câu truy vấn, hỗtrợ người dùng thao tác nhanh hơn và chuyên nghiệp hơn trong quá trình táisử dụng lại thư viện.Lệnh result_array() sẽ đem toàn bộ record đưa ra bên ngoài dưới dạng mảng.Tiếp tục, trong application/controllers ta tạo file user.php với nội dung:01 $this->Muser->listall(). Cuối cùng ta xem cấu trúc mảng của chúng bằng cặpthẻ pre và print_r.Vậy để nạp 1 model ta có cách nạp như sau:1 $this->load->Model(Tên_Model);Sau khi đã nạp xong, ta có cách gọi phương thức trong model như sau:1 $this->Tên_Model->Tên_Phương_Thức();Một số phương thức tương tác cơ sở dữ liệu trên model mà ta thường dùngtrong codeigniter framework1 - Thao tác liệt kê và nhận trả dữ liệu:+ Lựa chọn tên cột cần lấy1 $this->db->select(tên cột 1, tên cột 2);+ Truy vấn với điều kiện:1 $this->db->where(trường,Giá trị);+ Sắp xếp kết quả trả về theo 1 trường nào đó.1 $this->db->order_by(tên cột asc hoặc desc);+ Giới hạn kết quả trả về:1 $this->db->limit(Số record trên 1 trang,Vị trí bắt đầu);+ Lấy tất cả record từ câu truy vấn:1 $query->result_array();+ Lấy 1 record trong dữ liệu:1 $query->row_array();+ Đếm số xem có bao nhiêu dòng:1 $query->num_rows();Ví dụ:1 public function listall(){2 $this->db->select(username,password);3 $this->db->where(level,2);4 $this->db->order_by(id desc);5 $this->db->limit(1,0);6 $query=$this->db->get(user);7 return $query->result_array();8 }2- Thao tác thêm, xóa, sửa dữ liệu:+ Thêm dữ liệu1 $this->db->insert(tên bảng,mảng dữ liệu);Ví dụ:1 public function insert_user($data){2 $this->db->insert(user,$data);3 }+ Sửa dữ liệu1 $this->db->update(tên bảng,mảng dữ liệu);Ví dụ:1 public function update_user($data,$id){2 $this->db->where(id,$id);3 $this->db->update(user,$data)l4 }+ Xóa dữ liệu1 $this->db->delete(tên_bảng);Ví dụ:1 public function delete_user($id){2 $this->db->where(id,$id);3 $this->db->delete(user);4 }Với biến $data của chúng ta là một mảng dữ liệu:Ví dụ:1 $data=array(2 username => kenny,3 password => 12345,4 website => qhonline.info,5 email = ...
Tìm kiếm theo từ khóa liên quan:
cơ sở dữ liệu dữ liệu trên model tầng xử lý Model xử lý tách biệt tầng model mảng dữ liệuGợi ý tài liệu liên quan:
-
62 trang 401 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 378 6 0 -
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 292 0 0 -
13 trang 292 0 0
-
Phân tích thiết kế hệ thống - Biểu đồ trạng thái
20 trang 285 0 0 -
Tài liệu học tập Tin học văn phòng: Phần 2 - Vũ Thu Uyên
85 trang 255 1 0 -
Đề cương chi tiết học phần Quản trị cơ sở dữ liệu (Database Management Systems - DBMS)
14 trang 244 0 0 -
8 trang 186 0 0
-
Giáo trình về dữ liệu và các mô hình cơ sở dữ liệu
62 trang 183 0 0 -
Giáo trình Cơ sở dữ liệu: Phần 2 - Đại học Kinh tế TP. HCM
115 trang 175 0 0