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

3
我刚刚在我的电脑上安装了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时,会显示弹出窗口“在动态链接库OCI.dll中找不到OCIstmtgetNextresult过程入口点”,就像这个截图一样。
我该怎么做? 谢谢。
3个回答

11

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

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

将主目录中的所有文件复制到您的Apache/bin文件夹中,该文件夹包含httpd.exe 请注意,可能只需复制其中的一部分文件,但我记不清楚是哪些了。一旦您让系统工作起来,您可以通过排除法来确定。

配置php.ini(Apache内部的那个)以激活此模块:

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

重新启动Apache,应该可以正常工作。

对于php的类似工作可能需要在cli模式下完成。 在这种情况下,将Oracle Instant Client的文件复制到包含php.exe的php文件夹中,而不是ext/文件夹。 同样地,编辑cli的php.ini。 通过发出以下命令验证模块oci8是否已加载:

php -m

从控制台执行命令。 记住应该重新打开控制台以加载最新的PATH变量。


6
我已经找到了最小的文件集,需要复制它们才能使其正常工作:oci.dll、oraociei12.dll和oraons.dll。 - Fabien Haddadi

2

这是关于PHP 5.6.2x的x64版和Oracle Instant Client的问题......我遇到了同样的错误,后来我改用了x86版。


2

我首先做了什么-

  • 我的电脑-Windows 10 64位
  • 下载了XAMPP版本8.0.6(x64位)
  • 下载了Oracle 64位即时客户端(instantclient-basic-windows.x64-19.11.0.0.0dbru.zip)
  • 在系统变量中添加路径"C:\instantclient_19_11"
  • 下载了"8.0线程安全(TS) x64"(oci8 3.0.1)。然后解压并将所有扩展名为.dll.pdb.pd的文件添加到C:\xampp\php\ext
  • 之后,我配置了php.ini(取消注释了扩展-"extension=php_oci8_12c.dll")

做完所有这些后,我仍然遇到了相同类型的错误。

我是如何解决的-

我发现 8.0 Thread Safe (TS) x64 会导致问题。因此我决定使用 oci8 x86 位代替。

然后我成功连接了我的Oracle数据库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接