无法使用OCI8将PHP(XAMPP)连接到Oracle

时间:2016-11-07 02:51:42

标签: php oracle oci8 instantclient

提前感谢所有帮助。我无法使用OCI8将我的PHP连接到ORACLE。我使用的软件规格是

  • Windows 10版本:Home 64位
  • XAMPP版本:5.6.24
  • PHP版本 - 5.6.24
  • PHP脚本框架 - ZEnd Framework
  • ORACLE - XE 11g - OracleXE112_Win64.zip
  • 即时客户端 - 11.2 - instantclient-basic-nt-11.2.0.2.0.zip
  • ORACLE_HOME变量= C:\ oraclexe \ app \ oracle \ product \ 11.2.0 \ server
  • PATH - 具有此值ORACLE_HOME \ bin

我使用NAVICAT作为我的mysql客户端,并能够使用它连接到数据库。像即时客户端路径和sqlplus这样的设置必须在此设置并且一切正常。

现在真正的问题是使用OCI8将PHP连接到ORACLE。 我已经使用此链接为我拥有的php版本下载正确的OCI版本。的 https://pecl.php.net/package/oci8 即可。我按照使用'pecl install oci8-2.0.12'的说明进行安装 对于PHP 5.2 - PHP 5.6 来自此链接并下载了此下的所有库,它们是

  • 5.6非线程安全(NTS)x86
  • 5.6线程安全(TS)x86
  • 5.6非线程安全(NTS)x64
  • 5.6线程安全(TS)x64

尝试逐一安装XAMPP的 ext 文件夹中的上述库中的所有 php_oci8_11g.dll 文件。重置apache然后尝试运行脚本,但没有运气。这是我得到的错误信息

  

致命错误:未捕获的异常'Zend_Db_Adapter_Exception'   消息'当前未安装oci驱动程序'   d:\ XAMPP \ htdocs中\ b2bapptest \库\ Zend的\ DB \适配器\ PDO \ Abstract.php:112   堆栈跟踪:#0   d:\ XAMPP \ htdocs中\ b2bapptest \库\ Zend的\ DB \适配器\ Abstract.php(448):   Zend_Db_Adapter_Pdo_Abstract-> _connect()#1   d:\ XAMPP \ htdocs中\ b2bapptest \库\ Zend的\ DB \适配器\ PDO \ Abstract.php(238):   Zend_Db_Adapter_Abstract-> query('select * from a',Array)#2   d:\ XAMPP \ htdocs中\ b2bapptest \程序\ \模型MiscMapper.php(790):   Zend_Db_Adapter_Pdo_Abstract->查询('从*中选择*')#3   d:\ XAMPP \ htdocs中\ b2bapptest \应用\布局\脚本\ layout.phtml(53):   Application_Model_MiscMapper-> getActiveAnnouncements()#4   d:\ XAMPP \ htdocs中\ b2bapptest \库\ Zend的\ View.php(108):   include('D:\ xampp \ htdocs ...')#5   d:\ XAMPP \ htdocs中\ b2bapptest \库\ Zend的\查看\ Abstract.php(880):   Zend_View-> _run('D:\ xampp \ htdocs ...')#6   d:\ XAMPP \ htdocs中\ b2bapptest \库\ Zend的\ layout.php中(796):   Zend_View_Abstract-> render('layout.phtml')#7 D:\ xampp \ htdocs \ b2 in   D:\ xampp \ htdocs \ b2bapptest \ library \ Zend \ Db \ Adapter \ Pdo \ Abstract.php on   第112行

我缺少什么,有人可以帮忙,我已经用了一个多星期的时间来寻找解决方案:(

1 个答案:

答案 0 :(得分:0)

我连续几天遇到与OCI8和XAMPP有关的问题,问题显示为:

  

致命错误:调用未定义函数oci_connect()

我能够使用XAMPP默认提供的php对其进行更正。我也使用Windows 10 64位,但使用了xampp-win32-7.3.2-0-VC15(php 7.3.2)。总而言之,通过使用32位版本(除o.s外)进行的所有操作,我都能获得正确的配置。

我已经看到许多有关仅通过将所有内容转换为32位即可解决OCI8的问题,我认为值得尝试。在这个问题How to enable oci in xampp 5.6.3?中,我已经回答了我完成的完整路径