2012-10-18 70 views
0

可能重複:
Connect from PHP to an Oracle DB using an Oracle Wallet如何通過Oracle Wallet使用PHP?

我們正計劃實施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。我們已經安裝了PHP OCI8擴展。請特別指導我關於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_HOMELD_LIBRARY_PATH。 第7行是oci_connect導致該錯誤的字符串。如何連接到使用oci8/oci_connect的Oracle數據庫 ?

感謝您提前。 此致敬禮。 -Shashi Divekar

+0

http://stackoverflow.com/questions/7194176/connect-from-php-to-an-oracle-db-using-an-oracle-wallet – riti

回答

0

謝謝。你的答案很有用。我試圖分配點數,但不允許我分配點數。我做了一些實踐,現在這對我很有用。

我設置了一些環境變量,然後運行php腳本。

出口ORACLE_HOME =/NFS/LCLS /包/ ORACLE /產品/ 11.1.0.6 /客戶

出口TNS_ADMIN =/NFS/LCLS /工具/ ORACLE /錢包/ 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的帖子。

問候。 -Shashi Divekar