Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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
Can';t从php连接到oracle数据库_Php_Oracle_Database Connection - Fatal编程技术网

Can';t从php连接到oracle数据库

Can';t从php连接到oracle数据库,php,oracle,database-connection,Php,Oracle,Database Connection,从php连接到mydatabase时遇到问题。我可以通过我的C#代码进行连接,没有任何问题,如下所示: private void test() { string connect = "Driver={Microsoft ODBC for Oracle};CONNECTSTRING=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME

从php连接到mydatabase时遇到问题。我可以通过我的C#代码进行连接,没有任何问题,如下所示:

    private void test()  
    {
        string connect = "Driver={Microsoft ODBC for Oracle};CONNECTSTRING=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)));Uid=user;Pwd=pass";
        string queryString = "DELETE FROM myTabel";

        using (OdbcConnection connection = new OdbcConnection(connect))
        {
            try
            {
                OdbcCommand command = new OdbcCommand(queryString, connection);
                command.Connection.Open();
                command.ExecuteNonQuery();
                connection.Close();
                log.Debug("Lokalni podatki pobrisani!");
            }
            catch (Exception e)
            {
                Console.WriteLine("ne dela" + e.ToString());
                deluje = false;
            }
        }
    }
这确实会删除所有数据,因为我与oracle SQL Developer进行了检查,我与oracle SQL Developer的连接没有问题。 但当我尝试运行该代码时:

          $tnsname = '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA = (SERVICE_NAME = XE)))';
    }

    $db['default']['hostname'] = $tnsname;
     $db['default']['username'] = "esz";
      $db['default']['password'] = "test";
      $db['default']['database'] = "esz";
     $db['default']['dbdriver'] = "oci8";
     $db['default']['dbprefix'] = "";
      $db['default']['pconnect'] = FALSE;
     $db['default']['db_debug'] = TRUE;
     $db['default']['cache_on'] = FALSE;
     $db['default']['cachedir'] = "";
     $db['default']['char_set'] = "utf8";
     $db['default']['dbcollat'] = "utf8_general_ci"; 

  echo 'Trying to connect to database: ' .$db['default']['database'];
  $dbh=mysql_connect( $db['default['hostname'],$db['default'['username'],$db['default']['password'])
   or die('Cannot connect to the database because: ' . mysql_error());
我发现这些错误:

 mysql_connect() [function.mysql-connect]: php_network_getaddresses: getaddrinfo failed: No such host is known. 
 mysql_connect() [function.mysql-connect]: [2002] php_network_getaddresses: getaddrinfo failed: No such host is kn (trying to connect via tcp://(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = XE))):3306)
 php_network_getaddresses: getaddrinfo failed: No such host is known.
在我尝试执行mysql_connect()的行中


谢谢大家的帮助

使用oci\u connect,如下所示:

$user = ...;
$password = ...;
$url = '//dbserver:1521/dbname';
$connection = oci_connect ($user, $password, $url);
...
$query = '...';
$stid = oci_parse ($connection, $query);
oci_execute ($stid);
oci_fetch ($stid);

诸如此类

您是否安装了oracle客户端?您正在使用特定于mysql的连接与oracle数据库交互。如果数据库是Oracle,为什么要使用
mysql\u connect
呢?
dbh=mysql\u connect($db['default['hostname'],$db['default']['username'],$db['default']['password'])
看起来像是断线。我将mysql\u connecto替换为oci\u connect,我在这里看到消息:oci\u connect()[function.oci connect]:ORA-12154:TNS:无法解析指定的连接标识符,是的,我已安装oracle客户端。现在我开始解决该问题:消息:oci_connect()[function.oci connect]:ORA-12541:TNS:无侦听器如果我这样做,我会收到错误消息:oci_connect()[function.oci connect]:ORA-12541:TNS:无侦听器