CI的資料庫操作

2021-07-03 07:49:23 字數 3785 閱讀 4984

$active_group = "default";

$db['default']['hostname'] = "";  hostname: 你的資料庫的位置, 舉例來說, 'localhost' 或 ip 位址

$db['default']['username'] = "";  username和password: 使用者名稱和密碼必須有充分的許可權,允許你的**訪問資料庫中的資料。

$db['default']['password'] = "";

$db['default']['database'] = "";  database: 你的資料庫的名字, 舉例來說, 'websits'

$db['default']['dbdriver'] = "";  dbdriver: 你正在使用的資料庫的型別 - ci可受的有選項有mysql、mysqli、 postgre sql、odbc和ms sql

ci中第一次連線資料庫,在控制器或模型的建構函式裡輸入以下語句

$this->load->database();

就不需要重複連線, 在那個控制器或模型就可以做任意多次的查詢。

查詢操作(等同select)

方法一:

$query = $this->db->get('sites'); //sites為表名

這是乙個「select *」查詢,目標是site表。換句話說,它取回所有的行

也可用下面這種方式寫:

$this->db->from('sites');

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

如果想要得到特定的列,而不是全部列,這樣做:

$this->db->select('url','name','clientid');//'url','name','clientid'為列名

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

如果排序:

$this->db->select('url','name','clientid');//'url','name','clientid'為列名

$this->db->orderby("name", "desc");

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

如果想要限制返回的行數,比如想要最初五個結果

$this->db->select('url','name','clientid');//'url','name','clientid'為列名

$this->db->orderby("name", "desc");

$this->db->limit(5);

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

寫where語句

==的情況

$this->db->where('clientid', '1');  //clientid屬性  "1"為屬性值

!=的情況

$this->db->where('url !=', 'www.mysite.com');

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

where後幾個條件的可以寫幾個where 如

$this->db->where('url !=','www.mysite.com');

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

where…or的情況

$this->db->where('url !=','www.mysite.com' );

$this->db->orwhere('url !=','www.anothersite.com' );

連線表$this->db->from('sites');

$this->db->join('people', 'sites.peopleid = people.id');

寫個完整的查詢

$this->db->select('url','name','clientid','people.surname as client');

$this->db->where('clientid', '3');

$this->db->limit(5);

$this->db->from('sites');

$this->db->join('people', 'sites.clientid = people.id');

$this->db->orderby("name", "desc");

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

方法二:

$this->db->query("select id, name, url from sites where 'type' = 'dynamic'");

可以像下面的語句一樣寫查詢放條件

$condition = "client ='3' and (type ='dynamic' or type='static')";

$this->db->where($condition);

注意:雙引號是定義變數的.不要混淆單引號和雙引號.

顯示查詢結果

在查詢語句後加上下面這句話

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

如果有多個結果,他們被儲存在$row物件中,可以用乙個 foreach 迴圈:

foreach ($query->result() as $row)

如果我們只想要乙個結果,它可以作為乙個物件被返回, 或在這裡當做乙個$row陣列

if ($query->num_rows() > 0)

增加資料(等同insert)

方法一:先建個陣列,把要insert的值放在陣列裡.如下:其中url/name/clientid/type均為資料表屬性值

$data = array(

'url' => 'www.mynewclient.com',

'name' => 'bigco inc',

'clientid' => '33',

'type' => 'dynamic'

);然後使用$this->db->insert('sites', $data); 把資料增加到sites表中.

方法二:使用$this->db->set() 設定每乙個值

$this->db->set('url', 'www.mynewclinet.com');

$this->db->set('name', 'bigco inc');

$this->db->set('clientid', '33');

$this->db->set('type', 'dynamic');

$this->db->insert('sites');

更新(等同update)

先定位要更新的記錄,再update

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

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

$this->db->set()方式也可以,和新增資料應該是一樣的.

ci 提供幾個函式檢查資料庫是否成功執行了相關操作。 最有用的:

$this->db->affected_rows();

在執行insert或update後應該返回 '1'-但是如果我正在update一批記錄的話,可能返回更大的乙個整數。

如果我正在insert一筆新的記錄, 在實際產生它之前,我們並不知道id具體的值。如果我需要引用新的記錄的id, 使用下列語句:

$new_id_number = $this->db->insert_id();

刪除(等同delete)

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

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

ci 對資料庫的操作

首先new乙個基礎的model類,繼承自ci框架的ci model class m model base model xwlyun class m model extends ci model region 通用操作 執行sql xwlyun param sql param bool affect ...

CI對資料庫的常用操作

codeigniter ci 是乙個優秀 敏捷的php開源框架,尤其封裝了對資料庫的操作,很方便,以下是php ci常用的資料庫操作,作個記錄 查詢 query this db query select from table result 返回物件陣列 data query result resul...

CI對資料庫的常用操作

查詢 query this db query select from table result 返回物件陣列 data query result result array 返回資料 data query result array row 只返回一行物件陣列 data query row num ro...