无法在动态链接库oci.dll中找到过程入口点OCIstmtgetNextresult

时间:2016-06-07 04:12:30

标签: php oracle dll xampp oci

我刚刚在我的电脑上安装了xampp v3.2.2。 我想使用php创建连接字符串到oracle。 当我在xampp上启动Apache时,总是会显示弹出窗口“OCI.DLL正在从您的计算机中丢失”。 我一直从http://www.dll-found.com/download/o/oci.dll下载oci.dll并将其放在C / windows / SysWOW64

但是,当我再次在xampp上启动apache时,显示弹出窗口“程序入口点OCIstmtgetNextresult无法位于动态链接库oci.dll中” like this screenshot

我该怎么办? 感谢

3 个答案:

答案 0 :(得分:6)

您需要下载与您的操作系统及其位数相匹配的整个Oracle Instant客户端,例如: 12.1.0.2例如64位,来自Oracle网站(您可能需要创建一个免费帐户)。

解压缩您选择的文件夹中的内容。 将此文件夹的路径添加到PATH环境变量。

所有主目录中的文件复制到Apache / bin文件夹中,该文件夹包含httpd.exe 请注意,这些文件的子集可能会被复制,但我不记得究竟是哪一个。一旦你让系统工作,你最终可以通过淘汰来工作。

配置php.ini(Apache内部的一个)来激活这个模块:

extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client

重启Apache。它应该工作。

在cli模式下可以为php做类似的工作。 在这种情况下,将文件从Oracle Instant Client复制到php文件夹中,该文件夹包含php.exe,不是 ext /文件夹。 同样,编辑php.ini for cli。 通过发出:

验证模块oci8是否已加载
php -m
来自控制台的

命令。 请记住,您应该重新打开控制台以加载最新的PATH变量。

答案 1 :(得分:1)

这是PHP 5.6.2x和Oracle Instant Client的x64版本的问题....我得到了同样的错误,我改为x86

答案 2 :(得分:0)

我首先做了什么-

  • 我的电脑 - Windows 10 64 bit
  • 已下载 XAMPP Version 8.0.6(x64 位)
  • 下载了 64 位 (instantclient-basic-windows.x64-19.11.0.0.0dbru.zip) 的 Oracle Instant Client
  • 在系统变量中添加了路径 "C:\instantclient_19_11"
  • 已下载 "8.0 Thread Safe (TS) x64" (oci8 3.0.1)。提取它并在 .dll
  • 中添加扩展名为 .pdbpdC:\xampp\php\ext 的所有文件
  • 之后,我配置了 php.ini(取消注释扩展 -"extension=php_oci8_12c.dll"

在完成所有这些之后,我遇到了同样的错误。

我是如何解决的-

我发现 8.0 Thread Safe (TS) x64 导致了问题。所以我决定改用 oci8 x86 位。

然后我就可以成功连接我的 oracle 数据库了。