CodeIgniter 2.0.2 + Oracle 10.2.0.3 の接続について

Pocket
このエントリーをはてなブックマークに追加

あまり日本語のエントリが無かったので、ちょっと書いてみる。
PHP+Oracleの環境については、手前味噌ですがこちらの記事を参照。
CodeIgniterの環境設定については、ユーザガイドを参照。

動作検証を実施したサーバ環境は、以下。
・CentOS 4.8
・Oracle 10.2.0.3
・Oracle Instant Client 11.0.2
・PHP 5.3.2
・CodeIgniter 2.0.2

設定したコンフィグの内容は以下。
application/config/database.php


$db[‘default’][‘hostname’] = ‘//DB_SERVER_IP:PORT/SID‘;
$db[‘default’][‘username’] = ‘USER_ID‘;
$db[‘default’][‘password’] = ‘PASSWORD‘;
$db[‘default’][‘database’] = ‘DATABASE_NAME‘;
$db[‘default’][‘dbdriver’] = ‘oci8’; ← コレ。「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;


こんな感じで。

これであとはModel作ってSQL発行すればOK。
ActiveRecordでも問題無し。
簡単でした。

ちなみに、Oracleでシーケンスを取得するのにはこんな感じで。

function get_seq() {
  $this->db->SELECT(‘SEQUENCE_NAME.nextval as nextval’,FALSE)->FROM(‘dual’);
  $query = $this->db->get();
  return $query->result();
}

SELECT に 「FALSE」付けてあげないと、うまく取得出来ないです。
※勝手に「”」「’」とか付けちゃうので

では。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です