在使用資料庫之前,我們最好將資料庫進行自動連接:config/autoload.php自動載入 $autoload['libraries'] = array('database');
一些常用函數
選擇資料
$this->db->select();
允許你在SQL查詢中寫 SELECT 部分。
$this->db->where();
$this->db->or_where();
$this->db->where_in();
允許你在SQL查詢中寫 WHERE部分,其餘各種where語句請看手冊。
$this->db->get();
運行選取查詢語句並且返回結果集。可以擷取一個表的全部資料。
$this->db->like();
$this->db->or_like();
$this->db->not_like();
本函數允許你產生 LIKE 子句,在做查詢時非常有用,其餘文法請看手冊。
$this->db->order_by();
協助你設定一個 ORDER BY 子句。
$this->db->group_by();
允許你編寫查詢語句中的 GROUP BY 部分:
$this->db->distinct();
為查詢語句添加 "DISTINCT" 關鍵字:
$this->db->having();
允許你為你的查詢語句編寫 HAVING 部分。
$this->db->limit();
限制查詢所返回的結果數量:
$this->db->select_max();
為你的查詢編寫一個 "SELECT MAX(field)"。
$this->db->select_min();
為你的查詢編寫一個 "SELECT MIN(field)" 。
$this->db->select_avg();
為你的查詢編寫一個 "SELECT AVG(field)" 。
$this->db->select_sum();
為你的查詢編寫一個 "SELECT SUM(field)" 。
$this->db->join();
允許你編寫查詢中的JOIN部分。
$this->db->count_all_results();
允許你獲得某個特定的Active Record查詢所返回的結果數量。可以使用Active Record限制函數,例如 where(), or_where(), like(), or_like() 等等。
插入資料
$this->db->insert();
產生一條基於你所提供的資料的SQL插入字串並執行查詢。你可以向函數傳遞 數組 或一個 對象。
$this->db->insert_batch();
一次插入多條資料,產生一條基於你所提供的資料的SQL插入字串並執行查詢。你可以向函數傳遞 數組 或一個 對象。
$this->db->set();
本函數使您能夠設定inserts(插入)或updates(更新)值。它可以用來代替那種直接傳遞數組給插入和更新函數的方式。
更新資料
$this->db->update();
根據你提供的資料產生並執行一條update(更新)語句。你可以將一個數組或者對象傳遞給本函數。
$this->db->update_batch();
Generates an update string based on the data you supply, and runs the query. You can either pass an array or an object to the function. Here is an example using an array:
刪除資料
$this->db->delete();
產生並執行一條DELETE(刪除)語句。
$this->db->empty_table();
產生並執行一條DELETE(刪除)語句。
$this->db->truncate();
產生並執行一條TRUNCATE(截斷)語句。
鏈式方法
鏈式方法允許你以串連多個函數的方式簡化你的文法。考慮一下這個範例:
$this->db->select('title')->from('mytable')->where('id', $id)->limit(10, 20);
$query = $this->db->get();
說明: 鏈式方法只能在PHP 5下面運行。
查詢
$this->db->query();
要提交一個查詢,用以下函數:
$this->db->query('YOUR QUERY HERE');
query() 函數以object(對象)的形式返回一個資料庫結果集。 當使用 "read" 模式來執行查詢時, 你可以使用“顯示你的結果集”來顯示查詢結果; 當使用 "write" 模式來執行查詢時, 將會僅根據執行的成功或失敗來返回 TRUE 或 FALSE.
轉義查詢
$this->db->escape()這個函數將會確定資料類型,以便僅對字串類型資料進行轉義。並且,它也會自動把資料用單引號括起來,所以你不必手動添加單引號,用法如下: $sql = "INSERT INTO table (title) VALUES(".$this->db->escape($title).")";
查詢輔助函數
$this->db->insert_id()
這個ID號是執行資料插入時的ID。
$this->db->affected_rows()
當執行寫入操作(insert,update等)的查詢後,顯示被影響的行數。
$this->db->count_all();
計算出指定表的總行數並返回。在第一個參數中寫入被提交的表名。
產生查詢記錄集
result()
該方法執行成功返回一個object 數組,失敗則返回一個空數組。
result_array()
該方法執行成功時將記錄集作為關聯陣列返回。失敗時返回空數組。
row()
該函數將當前請求的第一行資料作為 object 返回。
你可以傳遞參數(參數是行的索引)以便獲得某一行的資料。比如我們要獲得第 5 行的資料: $row = $query->row(4);
row_array()
功能與 row() 一樣, 區別在於該函數返回的是一個數組。
除此以外, 我們還可以使用下面的方法通過遊標的方式擷取記錄:
$row = $query->first_row()
$row = $query->last_row()
$row = $query->next_row()
$row = $query->previous_row()
預設情況下他們將返回一個 object,同時你也可以傳遞參數 "array" 以便使用 array 的方式擷取資料 $row = $query->first_row('array')
$row = $query->last_row('array')
$row = $query->next_row('array')
$row = $query->previous_row('array')
結果集輔助函數
$query->num_rows()
該函數將會返回當前請求的行數。
$query->num_fields()
該函數返回當前請求的欄位數(列數):
$query->free_result()
該函數將會釋放當前查詢所佔用的記憶體並刪除其關聯的資源標識。
自動連接
“自動連接” 功能將在每個一頁面載入時被自動執行個體化資料庫類。要啟用“自動連接”,可在application/config/autoload.php中的 library 數組裡添加 database:
$autoload['libraries'] = array('database');
手動串連
如果僅僅是一部分頁面要求資料庫連接,你可以在你有需要的函數裏手工添加如下代碼或者在你的類裏手工添加以供該類使用。
$this->load->database();
串連多資料庫
如果你需要同時串連多於一個的資料庫,你可以用以下方式來實現:
$DB1 = $this->load->database('group_one', TRUE);
$DB2 = $this->load->database('group_two', TRUE);
表資料
$this->db->list_tables();
返回一個包含當前串連資料庫中所有表名稱的數組。
$this->db->table_exists();
有時,在對某個表執行操作之前,使用該函數判斷指定表是否存在很有用。返回一個布爾值。
資料庫工具類
重要提示: 初始化資料庫工具類之前,你的資料庫驅動必須已經運行,因為工具類依賴於此。
載入工具類: $this->load->dbutil()
一旦初始化完畢,你可以通過 $this->dbutil 對象來訪問成員函數:
$this->dbutil->list_databases()
$this->dbutil->database_exists();
$this->dbutil->xml_from_result($db_result)
$this->dbutil->backup()
資料庫緩衝類
啟用緩衝需要三步:
1、在伺服器上建立一個可寫的目錄以便儲存快取檔案。
2、在檔案 application/config/database.php 中$db['xxxx']['cachedir']設定其目錄。
3、啟用緩衝特性,可以在檔案 application/config/database.php 中設定全域選項$db['xxxx']['cache_on']='TRUE',也可以用以本頁下面的方法手動設定。
一旦被啟用,每一次含有資料庫查詢的頁面被載入時緩衝就會自動發生。
當有資料庫更新,我們需要刪除快取檔案
$this->db->cache_delete()
刪除快取檔案與特定網頁。如果你需要清除緩衝後,更新您的資料庫
$this->db->cache_delete('/blog', 'comments');
注意,手冊上寫的是 $this->db->cache_delete('blog', 'comments');但根據實際測試應該在控制器名字前加斜杠'/'才能正確執行。
$this->db->cache_delete_all()
清除所有所有的快取檔案。
資料庫維護類
注意: 欲初始化資料庫維護類,請確保你的資料庫驅動已經運行,因為該類依賴於資料庫驅動。
使用如下方法載入資料庫維護類:
$this->load->dbforge()
一旦初始化,就可以使用$this->dbforge 對象訪問類中函數:
$this->dbforge->create_database('db_name')
允許你建立由第一個參數指定的資料庫。
$this->dbforge->drop_database('db_name')
允許你刪除由第一個參數指定的資料庫。
$this->dbforge->create_table('table_name');
聲明了欄位和鍵之後,你就可以建立一個表。
http://www.bkjia.com/PHPjc/327664.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/327664.htmlTechArticle在使用資料庫之前,我們最好將資料庫進行自動連接:config/autoload.php自動載入 $autoload['libraries'] = array('database'); 一些常用函數 選擇資料...