可能重复: Connect from PHP to an Oracle DB using an Oracle Wallet
我们计划实施甲骨文钱包。它在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字符串。如何使用oci 8/oci_ connect连接到Oracle数据库?
提前感谢你。致以问候。-Shashi Divekar
发布于 2012-10-19 04:48:01
谢谢。你的回答很有用。我试着分配分数,但它不允许我分配分数。我做了一些经验,现在这对我有用了。
我设置了一些环境变量,然后运行php脚本。
导出ORACLE_HOME=/nfs/lcls/package/oracle/product/11.1.0.6/client
导出TNS_ADMIN=/nfs/lcls/tools/oracle/wallets/elog_reader
我从命令行运行了测试php脚本,现在它已经开始工作了。至少现在我有OCI8和甲骨文钱包一起工作。
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
https://stackoverflow.com/questions/12947873
复制相似问题