PHP未成功执行oracle命令

时间:2017-11-15 13:51:09

标签: php oracle

我在php中编写一个脚本,用于查询位于另一台服务器上的oracle数据库。这是我第一次这样做,我对这个设置有点不清楚。我多年没有使用过php,而且有sql,而不是oracle的经验。

我们的linux服务器上有PHP 5.3.3和oracle版本12.2。当我运行以下PHP脚本时,我们收到一条错误消息:

$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = radd.wi.com)(PORT = xxxx)))(CONNECT_DATA=(SID=radd)))";
$conn = oci_connect("user", "pw", $db);

PHP Warning:  oci_connect(): ORA-12170: TNS:Connect timeout occurred in /opt/apps/dslamPoller/poll_dslam.php on line 16

我查看了php.ini文件,并且我已取消注释以下行: extension = php_oci8.dll;与Oracle 10gR2 Instant Client一起使用 extension = php_oci8_11g.dll;与Oracle 11g Instant Client一起使用

我在服务器上查找了php_oci文件,但没有任何内容。

我看了下面的内容: oci_connect not working,我发现oracle版本和php.ini正在寻找的内容之间存在差异,但是当它的12个版本因为其他脚本可能依赖于12而犹豫不决时将oracle版本更改为11。我不确定它是否可以在12号服务器上安装oracle 11。我不确定改变php版本是个好主意,如果有的话使用oracle 12.我正在考虑更改oci dll文件以反映12中的内容,但是没有看到安装了12的类似文件。

我刚才发现了这个...... /opt/apps/transfer/oci8-2.0.12/php_oci8.h /opt/apps/transfer/oci8-2.0.12/php_oci8_int.h

我在看maybe I can install something

我在看maybe oracle client isn't fully installed for php use

我发现很难相信我必须通过安装程序在服务器上使用oracle客户端才能使用它。是这样的吗?我必须为此完成整个安装过程吗?

我可以ping通oracle查询所在的服务器(radd.wi.com)。它看起来不错。

0 个答案:

没有答案