[PHP-users 12074] Oracle9iに接続できず
Noriyuki TAKEI
php-users@php.gr.jp
Fri, 06 Dec 2002 19:53:36 +0900
武井です。
Oracle9iに接続できなくて困っています。お知恵を貸していただけたら
幸いです。まず当方の環境は以下のとおりです。
■Webサーバ
OS:Windows2000Server
Web:Apache1.3.27
PHP:4.2.3
Oracle:9.0.1
■DBサーバ
OS:Windows2000Server
Oracle:9.0.1
まずつながらなくなった経緯を申しあげたいと思います。
上記の環境のまま、DBの部分だけをクライアント、DBサーバともに
Oracle8iを使用していたときは問題なくつながりました。
そしてDBサーバはOracle8iのまま、クライアントのみを
Oracle9iにしました。この場合も問題なくつながりました。
そしてDBサーバの方もOracle9iに変更したところ、接続は
出来るのですが文字化けが発生しました。そこで
パッチ(9.0.1.4.0)をあてたところ接続も出来なくなってしまいました。
php.exeがインストールされているところにあるsqlnet.logも
見ましたが、何のログも吐いていませんでした。Ora_Error関数で
エラーの内容を見ようとしましたが、これまた何も表示されませんでした。
下記がソースです。「// ● データベースへ接続」のところのora_plogonの
部分でエラーになってしまいます。
ちなみに3つあるNLS_LANGの値を
JAPANESE_JAPAN.JA16SJISTILDE
JAPANESE_JAPAN.JA16EUC
JAPANESE_JAPAN.JA16EUCTILDE
に変更もしてみましたが、状況は変わりませんでした。
解決方法をご教示いただけたら幸いです。
// ● データベースへ接続
if ( !($conn = ora_plogon( $ora_user,$ora_password )) ) {
trigger_error("can not open ORACLE Database!!",E_USER_ERROR);
}
if ( !($cursor = ora_open( $conn )) ) {
trigger_error("can not set CURSOR!!",E_USER_ERROR);
}
// ● SQL文を実行
$sql = "select count(*) as CNT from TBL_INTRA_USER ";
$sql .= " where LOGIN_ID = '$id' and LOGIN_PWD = '$password'";
if ( !ora_parse($cursor,$sql) ) {
trigger_error("can not parse query!!",E_USER_ERROR);
}
if ( !ora_exec($cursor) ) {
trigger_error("can not exucute query!!",E_USER_ERROR);
}
// ● データの取得
ora_fetch($cursor);
$cnt = ora_getcolumn($cursor,"CNT");
// ● クエリー結果の解放
Ora_Close($cursor);
// ● データベースのクローズ
Ora_Logoff($conn);
--
Noriyuki Takei <noriyuki.takei@jalinfotec.co.jp>