多次询问此主题,但每台解决方案都无法在我的计算机上运行。
我正在尝试使用10G oracle dabatase连接Windows 7,但未加载oci扩展名。这里有一些事实:
C:\php>php -m
PHP警告:PHP启动:无法加载动态库' C:\ php \ ext \ php_oci8_11g.dll' - %1不是有效的Win32应用程序。
C:\php>php -v
PHP 5.6.19 (cli) (built: Mar 2 2016 20:09:42)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
C:\>tnsping localdb
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 02-AUG-2
016 22:37:50
故障排除
ext/
折叠的地方。其余的extesions装得很好。只是查找了所需的oracle dll文件,它们就在那里:
C:\>where oci*
C:\oracle\product\10.2.0\db_2\BIN\oci.dll
C:\oracle\product\10.2.0\db_2\BIN\ocijdbc10.dll
C:\oracle\product\10.2.0\db_2\BIN\ociw32.dll
我还缺少什么?提前谢谢
答案 0 :(得分:3)
下载Oracle Instant Client时请密切注意:
这两个细节都非常重要。一旦我满足这两个要求,错误就消失了,我现在能够通过PHP成功连接到Oracle
答案 1 :(得分:0)
这是一个可行的解决方案:
<?php echo PHP_INT_SIZE; ?>
如果获得4
,则表示您使用的是PHP x86。
如果得到8
,则表示您使用的是PHP x64。
版本11G:
版本11g,Windows x64:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html下载Oracle Database 11g Release 2 ***Client*** (11.2.0.1.0) for Microsoft Windows (x64)
。
版本11g,Windows x86:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html下载“ Oracle Database 11g Release 2 **Client** (11.2.0.1.0) for Microsoft Windows (32-bit)
”。
版本12C:
https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle12c-windows-3633015.html下载
Oracle Database 12c Release 2 Client (12.2.0.1.0) for Microsoft Windows (x64)
或Oracle Database 12c Release 2 Client (12.2.0.1.0) for Microsoft Windows (32-bit)
。
安装Oracle
查找是否使用PHP(TS)线程安全版本或PHP(NTS)非线程安全版本。为此,请使用以下代码:
<?php phpinfo(); ?>
Screenshot of phpinfo for TS version
Screenshot of phpinfo for NTS version
如果在Zend Extension Build
的值中找到TS
,则说明您使用的是Threadsafe(TS)版本的PHP。
如果在Zend Extension Build
的值中找到NTS
,则说明您使用的是非线程安全(NTS)版本的PHP。
DLL
列中与您所需的DLL版本相对应的Windows图标的Downloads
链接。对于PHP 5.3、5.4、5.5和5.6版本,最新版本为2.0.12
。
对于PHP 7.0,它的版本为2.1.8
。
对于PHP 7.1、7.2、7.3,版本为2.2.0
。
然后,继续下载与您的PHP版本和体系结构相对应的归档文件:如果您使用的是PHP 7.2 x86 TS,请下载相应的文件:7.2 Thread Safe (TS) x86
将下载的文件解压缩到PHP安装的ext
文件夹中。用新文件替换旧文件。
在php.ini文件中启用PHP OCI8扩展。
如果安装了Oracle 11g,则需要将以下行添加到php.ini
文件中:
ext=php_oci8_11g.dll
如果安装了Oracle 12c,则需要将以下行添加到php.ini
文件中:
ext=php_oci8_12c.dll
注意:只能同时启用3个可用PCP OCI8扩展之一。如果有多行以ext=php_oci8
开头,请检查是否仅启用了一行。禁用行以分号开头。如果找到多行,请删除或注释(在行的开头添加分号)。