0

重複の可能性:
Oracle ウォレットを使用して PHP から Oracle DB に接続する

Oracleウォレットの実装を予定しています。以下に示すように、sqlplus から動作します。これは、ウォレット機能が機能していることを示しています。

    export ORACLE_HOME=/afs/engg/g/lcls/package/oracle/product/11.1.0.6/client
    export PATH=$ORACLE_HOME/bin:${PATH}
    export TNS_ADMIN=/afs/engg/g/lcls/tools/oracle/wallets/engg_reader


    $ sqlplus /@enggdev
    SQL> show user
    USER is "ENGG_READER"

私はこれまでのところ、phpから機能させることに失敗しています。OCI8拡張機能を備えたphpがインストールされています。特に oci_connect コマンドとその構文について教えてください。

これは私のphpファイルです -

    <?php
    // Create connection to Oracle
    PutEnv("ORACLE_HOME=/afs/engg/g/lcls/package/oracle/product/11.1.0.6/client");
    PutEnv("TNS_ADMIN=/afs/engg/g/lcls/tools/oracle/wallets/engg_reader");


    $conn = oci_connect("/", "", "$TNS_ADMIN", null, OCI_CRED_EXT);



     if (!$conn) {
     $m = oci_error();
     echo $m['message'], "\n";
     exit;
     }
     else {
     print "Connected to Oracle!\n";
     }
     // Close the Oracle connection
     oci_close($conn);
     ?>

コマンドを実行すると$ /mccelog/package/php/php-5.4.7/bin/php connect4.php

Warning: oci_connect(): OCIEnvNlsCreate() failed. There is something wrong 
with your system - please check that ORACLE_HOME and LD_LIBRARY_PATH are set and 
point to the right directories in /afs/engg/u/cd/divekar/technical/connect4.php on
line 7

と を適切に設定ORACLE_HOMEしたことに注意してくださいLD_LIBRARY_PATH。行 7 は、そのエラーの原因となっている oci_connect 文字列です。oci8/oci_connect を使用して Oracle データベースに接続する方法は?

よろしくお願いします。よろしく。-シャシ・ディヴェカー

4

1 に答える 1

0

ありがとうございました。あなたの答えは役に立ちます。ポイントを割り当てようとしましたが、ポイントを割り当てることができません。私はいくつかの実験を行いましたが、今ではこれでうまくいきます。

いくつかの環境変数を設定してから、php スクリプトを実行します。

export ORACLE_HOME=/nfs/lcls/package/oracle/product/11.1.0.6/client

export TNS_ADMIN=/nfs/lcls/tools/oracle/wallets/elog_reader

コマンドラインから次のテストphpスクリプトを実行しましたが、現在は機能しています。少なくとも今では、OCI8 と Oracle ウォレットを連携させています。

php connect.php

<?php
// Create connection to Oracle

$conn = oci_connect("/", "", "MCCODEV", null, OCI_CRED_EXT);
if (!$conn) {
$m = oci_error();

echo $m['message'], "\n";
exit;
}
else {
     print "Connected to Oracle!\n";
      }
 // Close the Oracle connection
 oci_close($conn);
 ?>

ご協力いただき、また非常に有益な情報を提供していただきありがとうございます。また、stackoverflow.com の投稿を更新します。

よろしく。-シャシ・ディヴェカー

于 2012-10-19T04:48:01.347 に答える