好吧,我也遇到了这个错误并设法修复它。
在下载各种 Oracle 客户端版本之前,请先看看您的http://localhost/?phpinfo http://localhost/?phpinfo=1设置于配置命令部分。
这将告诉您使用哪个版本的 Oracle 来构建您的 WAMP 服务器。
上图显示了这两行:
"--with-pdo-oci=c:\php-sdk\oracle\x64\instantclient_12_1\sdk,shared"
"--with-oci8-12c=c:\php-sdk\oracle\x64\instantclient_12_1\sdk,shared"
显然告诉我们InstantClient使用的是64位。
有两个版本即时客户端 12.1 x64: 12.1.0.2.0 and 12.1.0.1.0
我用12.1.0.2.0版本测试并失败。
之后,我测试了旧版本,12.1.0.1.0 版本并工作了。
下载自适用于 Microsoft Windows (x64) 的即时客户端 http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html并将以下文件解压到“c:\oracle”:
- instantclient-basic-windows.x64-12.1.0.2.0.zip
- instantclient-sqlplus-windows.x64-12.1.0.2.0.zip
- instantclient-sdk-windows.x64-12.1.0.2.0.zip
这将创建以下文件夹“C:\Oracle\instantclient_12_1”。
使用“Windows 命令提示符”(WIN+R CMD) 转到上面的文件夹并执行 SQLPLUS:
- sqlplus [用户]/[密码]@[主机]:[端口]/[服务]
您必须能够连接。
最后,将“C:\Oracle\instantclient_12_1”文件夹添加到路径环境变量,将其放在最左边的位置。
关闭您的 WAMP 服务器.
是的,关闭它,因为环境变量仅在启动时读取。
因此重新启动服务可能会失败,导致您得到错误的结果。
重新启动后,您的 PHPINFO 将显示 OCI8 和 PDO_OCI 已加载。
我希望它有帮助!