Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用服务名称连接到oracle数据库?_Php_Sql_Database_Oracle_Oracle Sqldeveloper - Fatal编程技术网

Php 如何使用服务名称连接到oracle数据库?

Php 如何使用服务名称连接到oracle数据库?,php,sql,database,oracle,oracle-sqldeveloper,Php,Sql,Database,Oracle,Oracle Sqldeveloper,我正在尝试连接到外部数据库(而不是本地主机数据库) 我的登录详细信息是(当然是虚构的详细信息)。我使用这些登录详细信息使用oracle的sql developer成功登录 Username: COOLDB123 Password: ThisIsADB123 Hostname: oracle.mywebsite.com Port: 1521 Service name (NOT SID, I don't use a SID): pdb.oracle.mywebsite.com login sc

我正在尝试连接到外部数据库(而不是本地主机数据库)

我的登录详细信息是(当然是虚构的详细信息)。我使用这些登录详细信息使用oracle的sql developer成功登录

Username: COOLDB123
Password: ThisIsADB123
Hostname: oracle.mywebsite.com
Port: 1521
Service name (NOT SID, I don't use a SID): pdb.oracle.mywebsite.com 

login script.php

<?php
    $db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle.mywebsite.com)(PORT = 1521)))(CONNECT_DATA=(SID=pdb.oracle.mywebsite.com)))" ;

    if($c = OCILogon("COOLDB123", "ThisIsADB123", $db))
    {
        echo "Successfully connected to Oracle.\n";
        OCILogoff($c);
    }
    else
    {
        $err = OCIError();
        echo "Connection failed.";
    }
?>

事实上,我知道详细信息是正确的,因为我可以使用Oracle的SQL developer登录到我的数据库。我做错了什么?我怀疑在我的
$db
部分中,我放的是
SID
,而不是服务名称。但是,我不确定服务名称的语法。

要添加服务名称,我必须将
$db
更改为:

$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle.mywebsite.com)(PORT = 1521)))(CONNECT_DATA=(SERVICE_NAME=pdb.oracle.mywebsite.com)))" ;
$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle.mywebsite.com)(PORT = 1521)))(CONNECT_DATA=(SERVICE_NAME=pdb.oracle.mywebsite.com)))" ;