2011-07-20 182 views
3

我develloping使用CodeIgniter一個基於Web的應用程序,當我嘗試連接到我的Oracle企業公司9克數據庫的框架,給我這個錯誤:笨和Oracle未定義的常量:OCI_COMMIT_ON_SUCCESS

A PHP Error was encountered 

Severity: Notice 

Message: Use of undefined constant OCI_COMMIT_ON_SUCCESS - assumed 'OCI_COMMIT_ON_SUCCESS' 

Filename: database/DB.php 

Line Number: 142 

我嘗試了不同的方法連接(經典,oracle specific)。 有我的config/database.php文件。

$active_group = 'default'; 
$active_record = TRUE; 

$db['default']['hostname'] = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=*xxx.xxx.xxx.xxx*)(PORT=1521))(CONNECT_DATA=(SID=*DB_NAME*)))'; 
$db['default']['username'] = '*username*'; 
$db['default']['password'] = '*password*'; 
$db['default']['database'] = ''; 
$db['default']['dbdriver'] = 'oci8'; 
$db['default']['dbprefix'] = ''; 
$db['default']['pconnect'] = TRUE; 
$db['default']['db_debug'] = TRUE; 
$db['default']['cache_on'] = FALSE; 
$db['default']['cachedir'] = ''; 
$db['default']['char_set'] = 'utf8'; 
$db['default']['dbcollat'] = 'utf8_general_ci'; 
$db['default']['swap_pre'] = ''; 
$db['default']['autoinit'] = TRUE; 
$db['default']['stricton'] = FALSE; 

我認爲這不是連接錯誤,你能幫我嗎?

回答

8

OCI_COMMIT_ON_SUCCESS是一個在Oracle PHP extension中聲明的常量。你確定你已經安裝正確嗎?它是否在php.ini中啓用?你能否確認你可以用oci_connect手動連接數據庫?

如果你沒有擴展名,那麼你需要安裝它。我通常會採取一系列步驟來調試安裝here

我不確定OCI_COMMIT_ON_SUCCESS的價值是什麼,但如果涉及到這一點,您可以用自己的定義僞造它。

+0

謝謝,它來自php.ini中的擴展的激活。 – Lasticoteur

+0

@cwallenpoole:我已經安裝了Oracle客戶端。並在我的php.ini中啓用: php_oci8.dll,php_oci88_11g.dll和php_pdo_oci.dll 我檢查了oci_connect()函數,但它變成了「致命錯誤:調用未定義的函數oci_connect()」。 如何解決它,請?如何正確安裝? –

+1

@TienHoang您確定您使用的是正確版本的php.ini,某些PHP實例在同一臺計算機上有兩個不同的ini文件(例如,我使用的是Mac,它具有用於CLI的不同ini對於Apache)。 – cwallenpoole