在 IIS 上使用 PHP 连接到 Oracle
我遇到了各种各样的麻烦...
这是我正在使用的代码:
$c = OCILogon('user', 'pass', 'host');
我收到以下错误:
PHP 警告:ocilogon(): ociopen_server: 尝试检索第 26 行 D:\Inetpub\wwwroot**\oracle.php 中错误 ORA-12514 的文本时出错
有人知道我到底做错了什么吗?
顺便说一句,它是 PHP4、IIS6。我也在 PHP5、IIS7 上尝试过,但没有成功。
感谢您提供的任何帮助...:(
I'm having all sorts of trouble...
Here is the code I'm using:
$c = OCILogon('user', 'pass', 'host');
I get the following error:
PHP Warning: ocilogon(): ociopen_server: Error while trying to retrieve text for error ORA-12514 in D:\Inetpub\wwwroot**\oracle.php on line 26
Anyone know what the hell I'm doing wrong?
It's PHP4, IIS6 btw. I've tried this on PHP5, IIS7 as well, no luck.
Thanks for any help I can get... :(
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须正确配置 TNSNAMES.ora 文件,其中存储有关数据库连接的信息。 Oracle 错误 ORA-12514 说:
符函数 OCILogon 具有以下语法(我不是 PHP 开发人员,如果我不正确,请原谅):
在您的示例中位于第三个位置参数“host”。但手册说“连接字符串”。
此“连接字符串”必须通过文件 $ORACLE_HOME/network/admin/tnsnames.ora 文件进行配置($ORACLE_HOME 是安装 Oracle 客户端的文件夹)。
TNSNAMES.ORA 看起来像这样(示例):
相反:
您应该使用:
...TEST_DB 是 tnsnames.ora 文件中的服务名称
,但为了补充(我的文件 $ORACLE_HOME/network/admin/sqlnet.ora 看起来像这样):
最后是 PHP 手册示例(连接字符串可以直接插入到 PHP 中的变量中) ):
You must have correctly configured TNSNAMES.ora file, where is stored information about connection to database. Oracle errorr ORA-12514 says:
Function OCILogon have this syntax (I'am not PHP developer, so excuse me if I was not right):
In your example is on third position parametr "host". But manual says "connectin string".
This "connection string" must be coonfigured throught file $ORACLE_HOME/network/admin/tnsnames.ora file ($ORACLE_HOME is folder where is Oracle client installed).
TNSNAMES.ORA look like this(example):
Instead:
You should use:
...TEST_DB is service name from tnsnames.ora file
And yet for complementing (my file $ORACLE_HOME/network/admin/sqlnet.ora look like this):
And finally PHP manual example (connection string can be inserted directly into variables in PHP):
尝试使用持久连接 oci_pconnect()...对我有用
try using persistant connection oci_pconnect()... worked for me