【问题标题】:Connecting to Oracle with PHP on IIS在 IIS 上使用 PHP 连接到 Oracle
【发布时间】:2011-04-04 22:03:45
【问题描述】:

我遇到了各种各样的麻烦...

这是我正在使用的代码:

$c = OCILogon('user', 'pass', 'host');

我收到以下错误:

PHP 警告:ocilogon(): ociopen_server: Error while trying to retrieve text for error ORA-12514 in D:\Inetpub\wwwroot**\oracle.php on line 26

有人知道我到底做错了什么吗?

顺便说一句,它是 PHP4,IIS6。我在 PHP5 和 IIS7 上也试过这个,没有运气。

感谢您的帮助... :(

【问题讨论】:

    标签: php sql oracle iis ora-12514


    【解决方案1】:

    您必须已正确配置 TNSNAMES.ora 文件,其中存储了有关数据库连接的信息。 Oracle 错误器 ORA-12514 说:

    TNS:listener 目前不知道 连接中请求的服务 描述符

    函数 OCILogon 有这样的语法(我不是 PHP 开发者,如果我说的不对,请见谅):

    资源 oci_connect ( 字符串 $username , 字符串 $password [, 字符串 $connection_string [, 字符串 $character_set [, int $session_mode ]]])

    在您的示例中,位于第三位置参数“主机”。但手册说“连接字符串”。 此“连接字符串”必须通过文件 $ORACLE_HOME/network/admin/tnsnames.ora 文件进行配置($ORACLE_HOME 是安装 Oracle 客户端的文件夹)。

    TNSNAMES.ORA 看起来像这样(示例):

    TEST_DB = (DESCRIPTION =(ADDRESS_LIST =(地址 =(社区 = tcp.world)(协议 = TCP)(主机 = 127.0.0.1)(端口 = 1521)))(CONNECT_DATA = (SID = TESTDB_SID)))

    改为:

    $c = OCILogon('user', 'pass', 'host');
    

    你应该使用:

    $c = OCILogon('user', 'pass', 'TEST_DB');

    ...TEST_DB 是 tnsnames.ora 文件中的服务名称

    但为了补充(我的文件 $ORACLE_HOME/network/admin/sqlnet.ora 看起来像这样):

    SQLNET.AUTHENTICATION_SERVICES= (NTS)
    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
    NAME.DEFAULT_ZONE = world
    NAMES.DEFAULT_DOMAIN = world
    

    最后是PHP手动示例(连接字符串可以直接插入PHP中的变量):

    <?php
    $db ="(DESCRIPTION =
         (ADDRESS =
             (PROTOCOL = TCP)
             (HOST = HOSTNAMEHERE)
             (PORT = 1521)
         )
       (CONNECT_DATA = (SID = SIDNAMEHERE))
      )";
    
    $odbc = ocilogon ('user', 'pass', $db) or die( "Could not connect to Oracle database!") or die (ocierror());
    ?>
    

    【讨论】:

      【解决方案2】:

      尝试使用持久连接 oci_pconnect()... 为我工作

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-10
        • 2018-07-11
        • 1970-01-01
        • 2012-09-22
        • 1970-01-01
        • 1970-01-01
        • 2016-01-21
        • 2014-04-22
        相关资源
        最近更新 更多