CodeIgniter - 數據庫的增刪改查


數據庫操作無非是CRUD,用非裝逼的語言來說就是增刪改查。也許這一節會講的很泛泛,或者很多人看不懂,沒關系,大致的看看,知道是這么回事就好,繼續往后看,后面會講實例,這些枯燥而又抽象的東西可以先跳過,慢慢就會明白了。而且這部分內容CI手冊講的很全面,我也沒什么好方式講的很通俗易懂,索性不重復造那么大的輪子。

 

 

連接數據庫

 

想要操作數據庫,首先要確認已經配置好數據庫連接設置,這點在安裝部分的最下面已經講過,不再重復。

雖然配置好了,但是文件如何加載此類配置?在相應的控制器或者模型里對應的位置添加

$this->load->database();

一般是在模型的構造函數里添加此代碼,這樣只要調用了該模型,所有控制器和該模型內的其他函數都可以連接數據庫。

如果你不知道什么是控制器、模型等,請按我如下操作:

打開 application/models 文件夾新建一個文件 model.php,代碼如下:

<?php

class Model extends CI_Model {

  public function __construct()

  {

    $this->load->database();

  }

}

 

 

讀取數據庫內容

 

以上連接數據庫的操作都設置好之后,我們就可以來利用CI自帶的Active Record模式 來讀取數據庫內容了。

$query = $this->db->get('news');

return $query->result_array();

get()是用來獲取數據庫里指定表的內容,沒加限定的where之類的,就是獲取所有內容。

result_array()意思為返回數組形式的結果集,不加array就是返回對象形式的,更詳細的可以參見 Active Record 類 這里不做過多詳解。

return是函數內用來返回結果的操作,也可以賦值、var_dump 等之類操作查看$query->result_array();的內容

 

我一般習慣這樣寫,比較懶省事:

$query = $this->db->get('news')->result_array();

return $query;

看個人使用喜好了。

 

 

插入新數據內容

 

可以用數組的形式通過$this->db->insert()插入數據,第一個參數為插入數據的表名,第二個參數為數組,鍵名對應數據表字段名,后面是數據。

$data = array(

               'title' => 'My title' ,

               'name' => 'My Name' ,

               'date' => 'My date'

            );

$this->db->insert('mytable', $data); 

 

將執行如下SQL語句: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date')

這樣寫起來是不是比直接寫sql來的要簡明的多?

 

 

更新數據內容

 

$data = array(

               'title' => $title,

               'name' => $name,

               'date' => $date

            );

$this->db->where('id', $id);

$this->db->update('mytable', $data);

生成:

UPDATE mytable 

SET title = '{$title}', name = '{$name}', date = '{$date}'

WHERE id = $id

和插入的代碼相比,就多了一個where條件,更新特定條目,不加where就更新所有表內內容了。雖然where和update不在同一行,但是一串數據庫的操作會排在一起執行的,這個不用擔心。

 

 

刪除數據內容

 

$this->db->where('id', $id);

$this->db->delete('mytable'); 

生成:

DELETE FROM mytable 

WHERE id = $id

這里和上面的更新類似,只是加了where條件,沒有數組傳入。

這樣就是基本的數據庫增刪改查操作,這里只是大致的講了下,沒詳細的講解,以后有時間慢慢完善吧,大家可以參見 Active Record 類


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM