$this->db->insert_id()

當使用資料庫新增語法,會回傳ID值。

P.S 以下所有範例已設定自動載入 Database('database')。

Step one:model_M.php 檔,資料庫處理,新增資料後,回傳資料庫ID值。

<?php
class Model_M extends CI_Model
{	//建構子
    function __construct()
    {
        parent::__construct();
    }
	//快速新增
function insert_data($Quick_Insert_Data)
    { 
		$this->db->insert('test',$Quick_Insert_Data);
		//回傳ID值
		$query=$this->db->insert_id();
		return $query;
    }
}

?>

Step two:view_V.php 檔,顯示回傳資料庫的ID值。

<!DOCTYPE HTML>
<html>
<head><title><?php echo $title ; ?></title></head>
<body>
<h1><?php echo $heading ; ?></h1>
<h1>
<?php
echo "回傳ID值=".$query;
?>
</h1>
</body>
</html>

Step three:control_C.php 檔,程式流程控制。

<?php
class Control_C extends CI_Controller
{
	function __construct()
	{
		parent::__construct();		
	}
	// index 頁面
	function index()
	{
		$data['title'] = "頁面標題TEST";
		$data['heading'] = "CI2測試中";
		// 載入 model_M.php
		$this->load->model('model_M');
		
		// 模擬使用者輸入的資料
		$text="text_test";
		$address="address_test";
		$tel="tel_test";
		// 取得資料到 $Quick_Insert_Data
		$Quick_Insert_Data=array('text'=>$text,'address'=>$address,'tel'=>$tel);
		
		
		// 呼叫 model_M.php 的 Quick_Insert_Data 方法
		// 將 insert_data() 回傳結果指定給 $data['query']
		$data['query'] = $this->model_M->insert_data($Quick_Insert_Data);
		
		// 呼叫 view_V.php , 將資料載入到 view_V.php 顯示出
		$this->load->view('view_V', $data);
	}
	
}
?>

Step four:執行結果。

201301051535  

資料庫內容,新增一筆,id 為 5。

201301051537

$this->db->affected_rows()

當您對資料庫使用新增或者是修改語法(insert,update,etc.),上述會回傳影響筆數。

注意: 在 MySQL 裡面使用 "DELETE FROM TABLE" 語法會回傳零筆資料。 在 database 類別有提供小技巧,它可以正確回傳影響的資料筆數。系統預設將此功能打開,但您可以在資料庫驅動檔案(database driver file)將它關閉。

Step one:直接修改 model_M.php 檔。

<?php
class Model_M extends CI_Model
{	//建構子
    function __construct()
    {
        parent::__construct();
    }
	//快速新增
function insert_data($Quick_Insert_Data)
    { 
		$this->db->insert('test',$Quick_Insert_Data);
		//回傳受影響之筆數
		$query=$this->db->affected_rows();
		return $query;
    }
}

?>

Step two:執行結果,回傳受影響之筆數,因只有新增一筆,所以回傳一筆。

201301051750

資料庫內容,新增一筆,受影響一筆。

201301051753  

$this->db->count_all()

取得特定表格所有行數。第一個參數請填入指定表格。 參考範例:

echo $this->db->count_all('my_table');

// 產生整數,如 25

Step one:直接修改 model_M.php 檔。

<?php
class Model_M extends CI_Model
{	//建構子
    function __construct()
    {
        parent::__construct();
    }
	//快速新增
function insert_data($Quick_Insert_Data)
    { 
		$this->db->insert('test',$Quick_Insert_Data);
		//回傳資料庫總筆列數(Row)
		//test 資料表名稱
		$query=$this->db->count_all('test');
		return $query;
    }
}

?>

Step two:執行結果,回傳資料庫總比列數(Row)。

201301051804  

資料庫內容,共七筆列數(Row)。

201301051808

$this->db->platform()

得到您使用的資料庫型態,例如(MySQL,MS SQL,Postgres,etc...):

echo $this->db->platform();

Step one:直接修改 model_M.php 檔。

<?php
class Model_M extends CI_Model
{	//建構子
    function __construct()
    {
        parent::__construct();
    }
	//快速新增
function insert_data($Quick_Insert_Data)
    { 
		$this->db->insert('test',$Quick_Insert_Data);
		//回傳資料庫型態
		$query=$this->db->platform();
		return $query;
    }
}

?>

Step two:執行結果,回傳資料庫型態。

201301051826

$this->db->version()

使用底下語法會得到資料庫版本型號:

echo $this->db->version();

Step one:直接修改 model_M.php 檔。

<?php
class Model_M extends CI_Model
{	//建構子
    function __construct()
    {
        parent::__construct();
    }
	//快速新增
function insert_data($Quick_Insert_Data)
    { 
		$this->db->insert('test',$Quick_Insert_Data);
		//回傳資料庫版本型號
		$query=$this->db->version();
		return $query;
    }
}

?>

Step two:執行結果,回傳資料庫版本型號。

201301051830  

$this->db->last_query()

回傳最後使用的查詢語法(回傳查詢字串,並非是查詢結果)。參考範例:

$str = $this->db->last_query();

// 產生: SELECT * FROM sometable....

Step one:直接修改 model_M.php 檔。

<?php
class Model_M extends CI_Model
{	//建構子
    function __construct()
    {
        parent::__construct();
    }
	//快速新增
function insert_data($Quick_Insert_Data)
    { 
		$this->db->insert('test',$Quick_Insert_Data);
		//回傳最後使用查詢語法
		$query=$this->db->last_query();
		return $query;
    }
}

?>

Step two:回傳最後使用查詢語法,圖部分被截斷。

201301051841  

底下有兩個函數可以幫助簡化撰寫新增(INSERTs)跟修改(UPDATEs)SQL語法。

$this->db->insert_string()

此函數簡化了新增資料SQL語法。它將會回傳正確格式的 Insert SQL 語法。參考範例:

$data = array('name' => $name,'email' => $email,'url' => $url);

$str = $this->db->insert_string('table_name',$data);

第一個參數請填入表格名稱,第二個參數填入要新增的資料陣列. 上述例子會產生如下:

INSERT INTO table_name (name,email,url) VALUES ('Rick','rick@example.com','example.com')

注意: 所有傳到這個函數的值都會自動跳脫(escape),以產生更安全的查詢。

Step one:model_M.php 檔,資料庫處裡。

<?php
class Model_M extends CI_Model
{	//建構子
    function __construct()
    {
        parent::__construct();
    }
	//快速新增
function insert_data($Quick_Insert_Data)
    { 
		$this->db->insert('test',$Quick_Insert_Data);
                $query="insert successful.";
		return $query;
    }
}

?>

Step two:view_V.php 檔,顯示結果。

<!DOCTYPE HTML>
<html>
<head><title><?php echo $title ; ?></title></head>
<body>
<h1><?php echo $heading ; ?></h1>
<h1>
<?php
echo $query;
?>
</h1>
</body>
</html>

Step three:control_C.php 檔,控制流程。

<?php
class Control_C extends CI_Controller
{
	function __construct()
	{
		parent::__construct();		
	}
	// index 頁面
	function index()
	{
		$data['title'] = "頁面標題TEST";
		$data['heading'] = "CI2測試中";
		// 載入 model_M.php
		$this->load->model('model_M');
		
		// 模擬使用者輸入的資料
		$text="text_test";
		$address="address_test";
		$tel="tel_test";
		// 取得資料到 $Quick_Insert_Data
		$Quick_Insert_Data=array('text'=>$text,'address'=>$address,'tel'=>$tel);
		
		
		// 呼叫 model_M.php 的 Quick_Insert_Data 方法
		// 將 insert_data() 回傳結果指定給 $data['query']
		$data['query'] = $this->model_M->insert_data($Quick_Insert_Data);
		
		// 呼叫 view_V.php , 將資料載入到 view_V.php 顯示出
		$this->load->view('view_V', $data);
	}
	
}
?>

Step four:執行結果。

201301051920  

$this->db->update_string()

此函數簡化了修改資料的SQL語法。它會回傳正確格式的 Update SQL 語法。參考範例:

$data = array('name' => $name,'email' => $email,'url' => $url);

$where = "author_id = 1 AND status = 'active'"; 

$str = $this->db->update_string('table_name',$data,$where);

第一個參數為表格名稱,第二個參數填入修改的資料陣列,第三個參數填入 where 條件語法。上述例子會產生如下:

UPDATE table_name SET name = 'Rick',email = 'rick@example.com',url = 'example.com' WHERE author_id = 1 AND status = 'active'

注意: 所有傳到這個函數的值都會自動跳脫(escape),以產生更安全的查詢。

參考:http://www.codeigniter.org.tw/user_guide/database/helpers.html

創作者介紹
創作者 香腸炒章魚 的頭像
mitblog

香腸炒章魚

mitblog 發表在 痞客邦 留言(0) 人氣( 4 )