雷林鵬分享:CodeIgniter 數據庫操作
在平時項目開發過程中,除了處理那些繁瑣的邏輯過程外,還有一個重要的任務就是對數據庫的操作處理。這裏總結下自己平時使用CI過程中使用的如何對數據庫進行操作處理。
在CI框架中,我們一般會把對數據庫的操作放在models中,下面以文章操作類article_model.php為例:
1、數據庫鏈接
class Article_model extends CI_Model
{
private $admin = null;
public function __construct()
{
$this->admin->load->database(‘admin‘, true);
}
}
解釋一下,這裏使用一個 $admin 屬性的目的是為了多數據庫操作的情況下使用,如果你的項目中只有一個數據庫那麽你可以這樣
$this->load->database();
2、查詢操作
對於查詢操作自己不是很喜歡使用CI中那種鏈式操作方式,還是喜歡寫些原生的SQL語句。這裏使用的是封裝查詢:
$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";
$this->admin->query($sql, array(3, ‘live‘, ‘Rick‘));
註意:這裏使用query時我們不是用
$this->db->query($sql, array(3, ‘live‘, ‘Rick‘));
而是用
$this->admin->query($sql, array(3, ‘live‘, ‘Rick‘));
這就是剛才說的多數據庫的區別。
還有,使用封裝查詢的第二個好處是所有的值都會被自動轉義,形成了較為安全的查詢語句。你無需手動地去轉義這些數據;控制器將會自動為你進行。
完整的查詢代碼:
/**
* @param int $id
* @param string $status
* @param string $author
* @return mixed
*/
public function article($id, $status, $author)
{
$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";
$query = $this->admin->query($sql, array($id, $status, $author));
return $query->result_array(); //結果返回數組
return $query->result(); //結果返回對象
}
3、插入操作
插入操作相對查詢來說就比較簡單了,這裏不過多介紹,直接上代碼:
/**
* @param array $data 需插入數據,註意數組key與表字段名對應
* @return bool
*/
public function add($data)
{
return $this->admin->insert(‘tableName‘, $data);
}
4、更新操作
/**
* @param int $id 條件
* @param array $data 需修改的數據,註意數組key與表字段名對應
* @return bool
*/
public function update($id, $data)
{
$this->admin->where(‘id‘, $id); //更新條件,根據實際情況自行修改
return $this->admin->update(‘tableName‘, $data);
}
5、刪除操作
/**
* @param int $id 刪除條件
* @return bool
*/
public function delete($id)
{
$this->admin->where(‘id‘, $id); //刪除條件,根據實際情況自行修改
return $this->admin->delete(‘tableName‘);
}
上面就是CI中對數據庫的基本操作方法,對於其他的,如:查詢總數、查詢緩存、轉義查詢、事務等操作,可以參考CI手冊。(編輯:雷林鵬 來源:網絡 侵刪)
雷林鵬分享:CodeIgniter 數據庫操作