PHP CI DB 實戰 (二) - CRUD
前面已經講了,如果建立好環境之後,之後基本上,mysql 或 sql server都應該是一樣的操作語法
剩下的就是,如何撰寫CRUD
但前置條件,應該是撰寫基本上的Model class
Model用來寫類型DAO或也可以包裝像Service,甚至單一物件的Class,但在PHP CI,我會寫類似像存取DB、呼叫API、共用方法之類的東西,方便好找就好。
基本項目 - 建立class
<?php
class ModelContent extends CI_Model {
public function __construct()
{
$this->load->database(); // default DB
}
}
?>
他會使用database.php , $db['default']的項目
1. Select
下Query 的方式如下
$this->db->query($sql);
或
$this->db->query($sql,array("A","B");
或
$data = array();
$data[] = "A";
$data[] = "B";
而$sql 的參數要這樣下 $sql = "select * from table where A=? and B=? ";
下完會得到一個結果
會這樣取
$datas = array()
$query = $this->db->query($sql);
foreach($query->result() as $row()){
$data = array()
$data['Id'] = $row->Id;
$datas[] = $data;
}
那 取得數量怎麼玩
如下
$sql = "select count(*) as C from table"
$query = $this->db->query($sql);
$result = $query->row_array();
$count = $result['C'];
也有另一種方式是
$sql = "select * from table";
$query = $this->db->query($sql);
$result = $query->row_array();
$count = $query->num_rows();
2. inset
$data = array(
'Title' => $Title,
'Content' => $Content
);
$this->db->insert('TableName', $data);
3.Update
$data = array(
'Title' => $Title,
'Content' => $Content
);
$this->db->where('Id', $Id);
$this->db->update('TableName', $data);
4.Delete
$this->db->where('Id', $Id);
$this->db->delete('TableName');