致命错误:未捕获错误:调用未定义函数oci_connect()

时间:2018-01-01 15:28:44

标签: php oracle oci

我在PHP中遇到oci_connect()的问题。安装Oracle InstantClient(32 Bit)并在apache/bin/xampp/php文件夹中复制所需的* .dll后,我无法连接Oracle数据库。

我明白了:

  

致命错误:未捕获错误:调用未定义函数oci_connect()   在C:\ xampp \ htdocs \ OracleTest \ connect.php:9堆栈跟踪:#0 {main}   在第9行的C:\ xampp \ htdocs \ OracleTest \ connect.php中抛出。

还有一个问题是我无法加载动态库:

  

PHP警告:PHP启动:无法加载动态库   ' C:\ XAMPP \ PHP \分机\ php_oci8_11g.dll' - 指定的模块不能   被发现。在第0行的未知中

     

警告:PHP启动:无法加载动态库   ' C:\ XAMPP \ PHP \分机\ php_oci8_11g.dll' - 指定的模块不能   被发现。在第0行的未知中

我的代码是这样的:

$oc_conn = oci_connect('127.0.0.1/XE','****', '****');
    if($oc_conn)
    {
        echo "Success!!!";
    }
    else
    {
        $e = oci_error();
        trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
    }

我在这个问题上挣扎了3个多星期......我真的需要帮助,谢谢你。

1 个答案:

答案 0 :(得分:0)

"调用未定义的函数oci_connect()"似乎是由根本原因错误导致的次要错误。正如错误消息所示,根本原因错误似乎是PHP无法找到名为import pandas as pd df1 = pd.read_csv("E:\Business\Economic Indicators\Consumer Price Index - Core (YoY) - European Monetary Union.csv") df2 = pd.read_csv("E:\Business\Economic Indicators\Private loans (YoY) - European Monetary Union.csv") df3 = pd.read_csv("E:\Business\Economic Indicators\Current Account s.a - European Monetary Union.csv") df = pd.concat([df1, df2, df3], axis=1, join='inner') df.set_index('DateTime', inplace=True) print(df.head()) df.to_csv('df.csv') 的文件。 PHP将从php.ini中的C:\xampp\php\ext\php_oci8_11g.dll语句中获取此文件名。您的php.ini似乎还将extension=php_oci8_12c.dll定义为扩展代码所在的位置。

FIX:确保.dll位于C:\xampp\php\ext\,而不只是C:\xampp\php\ext\。另外,请确保.dll的名称为apache/bin,而不是php_oci8_11g.dll

成功加载动态库/扩展将(通常)使您的PHP代码可以使用新的函数和类。加载oci.dll后,您可能会发现php_oci8_11g.dll错误也已修复。