[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>