Thứ Năm, 18 tháng 6, 2015

Thao tác trên cơ sở dữ liệu trong CakePHP Framework

Trong mỗi một Framework khác nhau thì chúng sẽ đưa ra cách thao tác với cơ sở dữ liệu khác nhau. Và trong phần này tôi xin được hướng dẫn các bạn Thao tác trên cơ sở dữ liệu trong CakePHP Framework.

Như tất cả chúng ta đã biết, để xây dựng ra một website thì một quá trình đầu tiên là phải phân tích và xây dựng cơ sở dữ liệu. Để từ đó, trong quá trình lap trinh web, ta có thể  thao tác với cơ sở dữ liệu đó một cách tùy ý, phụ thuộc vào chức năng của chúng ta cần xử lý.

Để thao tác với cơ sở dữ liệu thì tôi giả sử có một bảng trong cơ sở dữ liệu như sau (tên bảng là infos)


Ta tạo file info.php trong thư mục app/models với nội dung sau:
<?php
  Class Info extends AppModel{
    var $name = "Info"; // Tên của model info
  }
?>
Tạo tiếp file infos_controller trong thư mục app/controllers với nội dung sau:
<?php class InfosController extends  AppController{
   var $name = "Infos"; // tên của Controller Info
   function get_all(){
        $data = $this->Info->find("all");
        $this->set("data",$data);
    }
}
?>
Trong đó ta để ý tới câu lệnh $this->Info->find(“all”) có chức năng gọi tới model Info và lấy tất cả dữ liệu trong bảng infos

Truy vấn có điều kiện

Trong controller InfosController ta tạo thêm một function get_cond() có chức năng truy vấn theo điều kiện

Ví dụ: Chúng ta sẽ sử dụng điều kiện để lấy ra những bản ghi có số điện thoại bắt đầu là 09
<?php class InfosController extends  AppController{
   var $name = "Infos"; // tên của Controller Info
   public function get_cond(){
     $sql = array(
       "condition" => array("phone LIKE" => "09%"),
     );
     $data = $this->Info->find("all", $sql);
     $this->set("data", $data);
   }
}
?>

* Chúng ta cũng có thể sử dụng những câu truy vấn hoàn chỉnh (không sử dụng hàm hỗ trợ)
<?php
 class InfosController extends  AppController{
 
   var $name = "Infos"; // tên của Controller Info
   public function get_cond(){
     $sql = "SELECT * FROM infos WHERE phone LIKE '09%' ";
     $data = $this->Info->query($sql);
     $this->set("data", $data);
   }
}
?>


SHARE THIS

0 nhận xét:

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.