PHP + ORACLE连接问题

我的错误代码是:</ p>

 警告:ocilogon()  [function.ocilogon]:OCIEnvNlsCreate()失败。 你的系统有问题 - 请检查ORACLE_HOME是否已设置并指向第47行的/data01/app/htdocs/doosanclub/include/classes.pinc中的正确目录
</ code> </ pre>

并且第47行是:</ p>

  46:function connect($ DBuser,$ DBpassword,$ DBsid){
47:$ this-&gt; conn = OCILogon($ DBuser,$ DBpassword,$ DBsid);
48:$ this-&gt; mode = OCI_DEFAULT;
49:}
</ code> </ pre>

我的ORACLE_HOME设置为 root.sh: ORACLE_HOME = / oracle </ code> </ p>

/ oracle </ code>是一个包含 / bin </ code的正确目录 >。</ p>

和..我的$ DBsid值也在 /oracle/network/admin/tnsnames.ora </ code>中定义。</ p>

我用Google搜索了一些文档并尝试了一下。 我做了一个测试php文件。
代码是:</ p>

  oci_internal_debug(1);  //打开跟踪
$ conn = oci_connect(“id”,“pw”,“SID”);
</ code> </ pre>

并显示:</ p>

  OCI8 DEBUG:OCINlsEnvironmentVariableGet at(/temp/php_source/php-5.2.13/ext/oci8/oci8.c:1067)OCI8 DEBUG:OCIEnvNlsCreate at(/ temp / php_source / php-  5.2.13 / ext / oci8 / oci8.c:1223)
警告:oci_connect()[function.oci-connect]:OCIEnvNlsCreate()失败。 你的系统有问题 - 请检查ORACLE_HOME是否已设置并指向第23行的/data01/app/htdocs/doosanclub/db_connect_test.php中的正确目录
OCI8 DEBUG:OCIHandleFree at(/ temp / php_source / php- 5.2.13 / ext / oci8 / oci8.c:1547)
</ code> </ pre>

ORACLE_HOME </ code>再次..也许是错的..? 我不知道.. </ p>

这是第一次设置这些东西。
请帮我解决这个问题。 谢谢!</ p>
</ div>

展开原文

原文

My error code is :

Warning: ocilogon() [function.ocilogon]: OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME is set and points to the right directory in /data01/app/htdocs/doosanclub/include/classes.pinc on line 47

and the line 47 is :

46:     function connect($DBuser,$DBpassword,$DBsid) {
47:        $this->conn = OCILogon($DBuser,$DBpassword,$DBsid);
48:        $this->mode = OCI_DEFAULT;
49:    }

My ORACLE_HOME is set in root.sh : ORACLE_HOME=/oracle

and /oracle is a correct directory that contains /bin.

and.. my $DBsid value is also defined in /oracle/network/admin/tnsnames.ora.

I googled some docs and try it. I made a test php file. THe code is :

oci_internal_debug(1);   // turn on tracing
$conn = oci_connect("id", "pw", "SID");

and it displays :

OCI8 DEBUG: OCINlsEnvironmentVariableGet at (/temp/php_source/php-5.2.13/ext/oci8/oci8.c:1067) OCI8 DEBUG: OCIEnvNlsCreate at (/temp/php_source/php-5.2.13/ext/oci8/oci8.c:1223) 
Warning: oci_connect() [function.oci-connect]: OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME is set and points to the right directory in /data01/app/htdocs/doosanclub/db_connect_test.php on line 23
OCI8 DEBUG: OCIHandleFree at (/temp/php_source/php-5.2.13/ext/oci8/oci8.c:1547) 

ORACLE_HOME again.. maybe it is wrong..? I don't know..

It's the first time to setup these things. Please help me out this problem. Thanks!

dtsps00544
dtsps00544 詹姆斯得到的是,PHP可能在不同的环境中运行。如果您使用'print$_ENV['ORACLE_HOME'];'将oci_connect()调用作为前缀,会发生什么??
9 年多之前 回复
doson1998
doson1998 heximal//该站点在Unix服务器上作为“root”运行。
9 年多之前 回复
duanliao6789
duanliao6789 詹姆斯安德森//你需要知道什么样的信息才能解决这个问题?我很抱歉,但由于安全问题,我无法给你全部信息。
9 年多之前 回复
dovhpmnm31216
dovhpmnm31216 当你运行“phpinfo()”时,你在环境中看到了什么
9 年多之前 回复
dongyan1841
dongyan1841 可能是一些文件许可问题?用什么用户apache运行php脚本?它有权读取/oracle目录吗?
9 年多之前 回复

1个回答



我通过将putenv()添加到连接PHP文件的数据库中解决了这个问题。</ p>

   putenv(“ORACLE_HOME = / oracle”); 
</ code> </ pre>

phpinfo(); </ code>显示非常奇怪 在设置 ORACLE_HOME </ code>之前,ORACLE_HOME = / oracle </ code>。</ p>
</ div>

展开原文

原文

I solved this problem just by adding putenv() into a DB connecting PHP file.

putenv("ORACLE_HOME=/oracle");

But it's very weird that phpinfo(); displays ORACLE_HOME=/oracle before I set ORACLE_HOME.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐