我使用PHP 5.2.0-8 + etch16 / oci_connect连接到我公司的Oracle DB,并在我们的网站上显示信息(可通过外部IP访问)。自从我们升级数据库版本(到11g 11.2.0.4.0版)以来,我再也无法连接到数据库。
页面保持加载状态(oci_set_call_timeout
不起作用),并且什么也没有显示。我知道代码可以正常工作并且凭据也可以,因为我在另一页中使用了相同的代码(仅对内部IP可见),并且升级后没有任何问题。我正在使用以下代码:
$conn = oci_connect('user', 'password', 'server', 'charset');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
echo "Error";
}
else{
echo "OK";
}
正在运行phpinfo,oci部分返回:
oci8
OCI8 Support enabled
Version 1.4.5
Revision $Revision: 305257 $
Active Persistent Connections 0
Active Connections 0
Oracle Instant Client Version 11.1
Temporary Lob support enabled
Collections support enabled
Directive Local Value Master Value
oci8.connection_class no value no value
oci8.default_prefetch 100 100
oci8.events Off Off
oci8.max_persistent -1 -1
oci8.old_oci_close_semantics Off Off
oci8.persistent_timeout -1 -1
oci8.ping_interval 60 60
oci8.privileged_connect Off Off
oci8.statement_cache_size 20 20
在仅内部IP可以访问的页面中,oci
的版本为1.4.9,它正在Windows Server 2003上运行(我知道它很旧)。外部页面(不起作用的页面)的oci
版本为1.4.5,并且在Linux jedi-ng 2.6.25中运行。我无权访问linux服务器(仅访问php / html的存储文件夹),但是我可以使用shell_exec()
运行某些操作。
这是版本问题(我不能再使用旧版本的php / oci连接到Oracle 11g了,或者这只是我可以尝试另一种方法解决的连接问题?
如有需要,随时提问。
提前感谢。
我使用PHP 5.2.0-8 + etch16 / oci_connect连接到我公司的Oracle DB,并在我们的网站上显示信息(可通过外部IP访问)。自从我们将数据库版本升级到11g ...
将此添加到测试脚本的顶部,看看是否收到更好的错误消息: