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

时间:2011-12-26 12:43:06

标签: php oracle iis oci instantclient

我有下一行未注释(在我的php.ini中):

extension=php_oracle.dll 
extension=php_oci8.dll

我下载了这个文件instantclient-basiclite-nt-11.2.0.2.0.zip并解压缩并将其放在驱动器D ...

我正在使用Windows XP

我设置了这样的环境变量:

LD_LIBRARY_PATH     C:\instantclient_11_2:$LD_LIBRARY_PATH 
ORACLE_HOME     C:\instantclient_11_2 

但是当我执行oci_connect()函数时,我看到了这个错误:

  

致命错误:在...中调用未定义的函数oci_connect()

我在erroeLog文件中发现了这个警告:

  

[29-Dec-2011 00:36:39] PHP警告:PHP启动:无法加载动态库'c:\ php \ ext \ php_oci8.dll' - 找不到指定的模块。    在第0行的未知中

     

[29-Dec-2011 00:36:39] PHP警告:PHP启动:无法加载动态库'c:\ php \ ext \ php_oracle.dll' - 找不到指定的模块。

3 个答案:

答案 0 :(得分:4)

要检查的事项:

  • 您无需设置LD_LIBRARY_PATHORACLE_HOME。但是,您需要将D:\instantclient_11_2添加到PATH环境变量并重新启动计算机,以便进行更改。

  • 在配置PHP之前,请检查您的Oracle客户端库是否真正有效(例如,尝试与SQL Developer连接)。

  • 评论extension=php_oracle.dll。它属于旧的和已弃用的Oracle扩展。

  • 仔细检查php_oci8.dll文件是否真的在c:\php\ext\php_oci8.dll

答案 1 :(得分:2)

php_oci8.dll文件放入php/ext目录后,您是否重启了apache?

答案 2 :(得分:0)

只需将此行添加到指向扩展位置的php.in文件中,应该知道它们的位置,但通常在php文件夹中。

extension_dir = C:\xampp\php\ext ;这对我来说是使用xampp,明智。

它对我有用。问题在于访问扩展,与oracle库无关。