我刚刚在我的电脑上安装了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
我该怎么办? 感谢
答案 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 位)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
.pdb
、pd
、C:\xampp\php\ext
的所有文件
php.ini
(取消注释扩展 -"extension=php_oci8_12c.dll"
)在完成所有这些之后,我遇到了同样的错误。
我发现 8.0 Thread Safe (TS) x64
导致了问题。所以我决定改用 oci8 x86
位。
oci8 x86
位,我们需要 xampp-portable-win32-7.3.2-0-VC15-installer.exe
的 XAMPP(Windows 32-bit
)。 (https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/7.3.2/)Oracle Instant Client
,我们还需要 Windows 32-bit
。 (https://www.oracle.com/database/technologies/instant-client/microsoft-windows-32-downloads.html),解压文件夹并将其放置在 c 驱动器中。(在系统变量中添加路径 "C:\instantclient_19_11"
,如果您还没有)7.3.2.
,所以我下载了 7.3 Thread Safe (TS) x86
(https://pecl.php.net/package/oci8/2.2.0/windows),解压并替换了 C:\xampp\php\ext
中的文件php.ini
(取消注释扩展 -"extension=php_oci8_12c.dll"
)然后我就可以成功连接我的 oracle 数据库了。