我正在尝试使用php连接到oracle数据库。当我尝试通过连接字符串/描述符进行连接时,它连接得很好,但是当我尝试使用tns名称进行连接时,整个操作停止并且chrome显示空白错误页面ERR_CONNECTION_RESER
。我看到失败的响应,它是0字节,没有标题,没有正文......没有。
这是代码:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
$connStr = "Some connection <string> copied from tnsnames.ora";
//$connStr = "Some connection <name> copied from tnsnames.ora";
try
{
$conn = oci_connect('dev', '12345678', $connStr, 'utf8');
if (!$conn)
{
$err = oci_error();
var_dump($err);
}
oci_close($conn);
echo "Success";
}
catch(Exception $e)
{
$err = oci_error();
var_dump($err);
var_dump($e);
}
我查了一下,我的php可以看到 ORACLE_HOME TNS_ADMIN 他们正指向正确的方向。 我在用 Windows 7 amd64 PHP 5.6.13 TS VC11 Apache 2.4.16 VC14 Instant Client 12.1.0.2
答案 0 :(得分:0)
在这个问题上花了几个小时和睡眠没睡觉,我找到了解决方案。
我有一个sqlnet.ora文件,用于指定超时和其他网络属性。我们的数据库最近加入了该公司的领域,问题在于这一行:
以前
NAMES.DIRECTORY_PATH= (HOSTNAME, TNSNAMES, ONAMES, EZCONNECT, LDAP)
#########
解决方案
NAMES.DIRECTORY_PATH= (HOSTNAME, TNSNAMES, ONAMES, EZCONNECT, LDAP)
NAMES.DEFAULT_DOMAIN = FIRM.DOMAIN