這裡的紀錄僅以個人使用成功的經驗分享.
網路上還有許多的解決方案.
供個人選擇. 廢話不多說.
進入正題..
目前使用CI版本為: 3.1.1
Oracle版本為:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – 64bit Production
首先個人先設定 application\config\database.php 檔案
//設定oracle連線的基本資訊 $tnsname ="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=伺服器IP位置)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME="服務名稱")))"; //以下設定則跟MYSQL連線方式差不多 $db['oracle'] = array( 'dsn' => '', 'hostname' => $tnsname, 'username' => '帳號', 'password' => '密碼', 'database' => '資料庫名稱', 'dbdriver' => 'oci8', //SQL的驅動方式 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'UTF8', //設定編碼 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE );
接者我們來到 application/models/Erp_M.php <= 這個是我命名的,依據各位的來決定開啟哪個
在建構初始化的時候呼叫
//載入預設oracle資料庫連線
$this->db = $this->load->database(‘oracle’,TRUE);
//同時編寫函數 透過 Active Record 方式來取得DB資料
public function test()
{
$this->db->limit(10); //取出10筆
$this->db->select(‘TTRSNO’,FALSE); //第二參數取消欄位 雙引號(有時資料庫不支援雙引號帶入查詢)
$this->db->where(‘NtiNo’,"‘P2016122200848A'",FALSE);
$query = $this->db->get(‘TBTR00RCAB1’);
return $query;
}以下為可查詢之語法
“SELECT TTRSNO FROM “TBTR00RCAB1″ WHERE NtiNo = ‘P2016122200848A'"以下為呈現結果
如第二參數未設定不使用雙引號
SELECT “TTRSNO" FROM “TBTR00RCAB1″ WHERE “NtiNo" = “‘P2016122200848A"‘
會顯示以下錯誤:
Message: oci_execute(): ORA-00904: “NtiNo": invalid identifier