PHP CI DB 實戰 (二) - CRUD

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');