我试图通过关注these directions让oci_connect
工作,但我仍然收到错误:
ora-24408无法在test.php中生成唯一的服务器组名称
这是我的PHP代码段(伪造IP):
$tns2 = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 123.123.123.123)(PORT = 1521)) (CONNECT_DATA = (SID = foo)))";
if ($conn = oci_connect("username","pwd", $tns2))
{
echo "Connected to foo";
oci_close($conn);
}
else
{
die("could not connect to foo");
}
我使用SQL Developer,可以从这个Ubuntu服务器上很好地连接到这个数据库。我还有Java应用程序,可以毫无问题地从这个Ubuntu服务器连接到远程Oracle数据库。
我错过了什么使PHP工作?
我甚至做了phpinfo()
,它显示了oci8信息。
答案 0 :(得分:6)
仔细查看oci_connect。
尝试使用此连接字符串:"123.123.123.123:1521/foo"
$conn = oci_connect("username","pwd", "123.123.123.123:1521/foo");
希望它有所帮助。
答案 1 :(得分:0)
您可以尝试这样的事情:
define ('DB_USER','username');
define ('DB_PASS','pwd');
define ('DB_HOST', '123.123.123.123');
define ('DB_NAME', 'YOUR_DATABASE_NAME');
define ('CONST_DB_CHARSET_FOR_CONNECT','WE8ISO8859P15');
define ('DB_CONNECTION_STRING','\\123.123.123.123/DBSCHEMA');//in localhost use ''
$conexion = oci_connect(DB_USER, DB_PASS,DB_CONNECTION_STRING,CONST_DB_CHARSET_FOR_CONNECT);
只需输入正确的值:YOUR_DATABASE_NAME 这就是我连接到远程oracle 11.g数据库的方式。
希望这会对你有所帮助。