cakephp 2010.02.05 [ Fri ] 20:20
Oracle Database 10g Express Edition を使用する際の app/config/database.php のDATABASE_CONFIGの設定例です。
CakePHPは1.2.5を使用しています。
ホスト名またはIPアドレスを 'host' の方ではなく、'database' の方に書くのと、文字セットの設定が encoding' ではなく 'charset' なところがポイントでしょうか。
cake/libs/model/datasources/dbo/dbo_oracle.php を見てみると、'host' の値は使われていません。
ocilogonはoci_connect、ociplogonはoci_pconnectのエイリアスです。
そして、よくよく見ると文字セットのインデックスが、'encoding'ではなく、'charset'になっています。
oci_connect() は、文字セットが指定されていないか、またはNULLの場合、NLS_LANG環境変数の設定が使用されるようです。
文字セットをNLS_LANGで設定する場合は、JAPANESE_JAPAN.AL32UTF8(<language>_<territory>.<character set>)のように指定すると思いますが、oci_connect() の引数に渡す場合は、単純にAL32UTF8(<character set>)のみを設定しないとうまく動きませんでした。
参考
PHP: oci_connect - Manual
PHPfestチュートリアル:Oracle Database 10g Express EditionおよびZend Core for Oracle
コメントする