1. Trang chủ
  2. » Công Nghệ Thông Tin

Codeigniter Framework: Tương tác cơ sở dữ liệu trên model pdf

11 521 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 129,74 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 t

Trang 1

Codeigniter Framework: Tương tác cơ sở dữ liệu trên

model

Trang 2

Ở 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 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ột mảng dữ liệu, khi đó thông qua view ta sẽ đẩy nội dung của mảng dữ liệu ấy

ra 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ý model như 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ải cấu hình thông tin kết nối với CSDL tại file database.php trong thư mục

application/config

Trang 3

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ủa tô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ạo

1 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 hay model Do vậy, trong trường hợp này ta dùng thêm chữ m đứng trước để phân biệt

Trang 4

1 <?php

2 class Muser extends CI_Model{

3 public function construct(){

4 parent:: construct();

5 $this->load->database();

6 }

7 }

Giống với controller, khi tạo lớp Muser thì chứ đầu tiên chúng ta phải viết

hoa Và để không ghi đè lên các construct có sẵn chúng ta phải dùng từ khóa parent để giữ lại các kết quả Đồng thời, tại đây ta cũng kết nối với cơ sở dữ liệu luôn Việc này giúp ta dễ dàng thao tác hơn với các phương thức bên dưới

Tiếp tục ta tạo một phương thức có chức năng liệt kê tất cả record trong bảng user bằng đoạn code sau:

01 <?php

02 class Muser extends CI_Model{

Trang 5

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 active record 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ái

sử 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:

Trang 6

01 <?php

02 class User extends CI_Controller{

03 public function construct(){

04 parent:: construct();

05 }

06 public function index(){

07

$this->load->Model("Muser");

08 $data=$this->Muser->listall();

09 echo "<pre>";

10 print_r($data);

11 echo "</pre>";

12 }

13 }

Ta thấy, tại đây có thêm 1 phương thức là index Với nội dung của nó là nạp model tên Muser bằng phương thức: $this->load->Model("Muser") Sau khi nạp xong Model này, ta lại load tiếp phương thức listall() bằng cách sử dụng

Trang 7

$this->Muser->listall() Cuối cùng ta xem cấu trúc mảng của chúng bằng cặp thẻ 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ùng

trong codeigniter framework

1 - Thao tác liệt kê và nhận trả dữ liệu:

+ Lựa chọn tên cột cần lấy

1 $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ề:

Trang 8

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 }

Trang 9

2- Thao tác thêm, xóa, sửa dữ liệu:

+ Thêm dữ liệu

1 $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ệu

1 $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)l

4 }

+ Xóa dữ liệu

1 $this->db->delete("tên_bảng");

Ví dụ:

Trang 10

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" => "kenny@qhonline.info"

6 );

Trong trường hợp bạn không muốn dùng active record Thì vẫn có thể viết câu truy vấn bình thường thông qua cú pháp $this->db->query("Câu query");

1 public function listall(){

2 $result=$this->db->query("select * from user order by id desc");

Trang 11

3 echo "<pre>";

4 print_r($result->result_array());

5 echo "</pre>";

6 }

Bạn thấy đấy, tương tác và sử dụng model trong Codeigniter Framework

thật đơn giản phải không nào Nếu bạn kiên nhẫn tham khảo và thực hành bài viết này, tôi tin bạn đã có thể bắt tay vào viết ứng dụng từng bước một rồi đấy Trong bài kế, tôi sẽ mổ sẻ về một số vấn đề liên quan đến kiểm tra tính hợp lệ của dữ liệu trên form Qua đó ta có thể dễ dàng viết được các chức năng thêm record một cách dễ dàng

Ngày đăng: 28/06/2014, 14:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN