您的错误显示了一个内建类型不匹配。
按照以下步骤解决:
确保您下载并安装了Oracle instantclient,下载链接为:http://www.oracle.com/technetwork/topics/winsoft-085727.html,但请注意:
- 记下您的Oracle数据库版本;对于Oracle数据库12c,使用Version 12.1.x,对于11g版本,使用Version 11.1.x。
- 在任何情况下,请确保您下载了Oracle instantclient的Basic Lite版本。
之后,请将Oracle instantclient的位置添加到您的环境变量中的系统变量路径中。同样,请确保您的xampp的PHP和其ext也可用并设置在其中(如果没有,请添加它们)。
接着,添加一个新的系统变量,将TNS_ADMIN作为变量名,Oracle instantclient的位置作为变量值。
同时,定义用户变量PATH,将相同的Oracle instantclient的位置作为值。
完成这个步骤后,重新启动计算机以全面传播新定义的环境变量。
启动后,您可以打开Windows命令提示符并运行where oci*,以确保您已经很好地定义了您的环境变量; 响应应该看起来像这样:
C:\Users\flex>where oci*
C:\oraclexe\app\oracle\product\11.2.0\server\bin\oci.dll
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ocijdbc11.dll
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ocijdbc11.sym
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ociw32.dll
C:\instantclient_11_2\oci.dll
C:\instantclient_11_2\oci.sym
C:\instantclient_11_2\ocijdbc11.dll
C:\instantclient_11_2\ocijdbc11.sym
C:\instantclient_11_2\ociw32.dll
C:\instantclient_11_2\ociw32.sym
如果没有成功,您可能错过了某些步骤,需要重新检查并确保有效地完成它。
如果环境变量已经定义好,您现在可以进入您的php.ini文件并取消注释(去掉前面的分号
;)您的
oci扩展(php_oci8.dll和php_oci8_11g.dll),以启用它们。
请记得保存您的php.ini文件,然后如果Apache尚未运行,请重新启动或启动它。
为了检查您的PHP oci8配置是否已启用,您可以返回到Windows命令提示符并运行:
php --ri oci8;响应应类似于以下内容:
C:\Users\flex>php --ri oci8
OCI8 Support => enabled
OCI8 DTrace Support => disabled
OCI8 Version => 2.1.1
Revision => $Id: 86f22a208f89dcd5b305e82929a7429683968b11 $
Oracle Run-time Client Library Version => 11.2.0.4.0
Oracle Compile-time Instant Client Version => 10.2
Directive => Local Value => Master Value
oci8.max_persistent => -1 => -1
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20
oci8.default_prefetch => 100 => 100
oci8.old_oci_close_semantics => Off => Off
oci8.events => Off => Off
Statistics =>
Active Persistent Connections => 0
Active Connections => 0
或者,您可以创建一个包含<?php phpinfo(); ?>
的PHP文件,然后在浏览器中打开它并搜索oci8出现的位置;它也应该显示为已启用。
C:\xampp\php\ext
目录,并检查名为 php_ oci8_12c.dll 的文件;您能找到它吗?我相信它一定丢失了。是这种情况吗? - nyedidikekephp_oci8_12c.dll
文件放置在c:\xampp\php\ext
文件夹中。 - Waqas Mehmood