2011-07-20 112 views
3

私はCodeIgniterのでWebベースのアプリケーションをdevellopingと私はフレームワークが私にこのエラーを送る私のオラクルENTREPRISE 9gのデータベースに接続しようとすると:CodeIgniterのと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 

私は別の方法を試してみましたconnect(classic、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 Clientをインストールしました。私のphp.iniで有効にしました: php_oci8.dll、php_oci88_11g.dll、php_pdo_oci.dll oci_connect()関数をチェックしましたが、 "致命的なエラー:未定義関数oci_connect()"を呼び出しました。 修正方法を教えてください。それを正しくインストールするには? –

+1

@TienHoang正しいバージョンのphp.iniを使用していますか?いくつかのPHPインスタンスは同じマシン上に2つの異なるiniファイルを持っています(私は1つはMacを使用しています。 Apacheの場合)。 – cwallenpoole