【问题标题】:Cant connect PHP(XAMPP) to Oracle using OCI8无法使用 OCI8 将 PHP(XAMPP)连接到 Oracle
【发布时间】:2017-03-20 07:41:34
【问题描述】:

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

  • Windows 10 版本:家庭 64 位
  • XAMPP 版本:5.6.24
  • PHP 版本 - 5.6.24
  • PHP 脚本框架 - ZEnd 框架
  • ORACLE - XE 11g - OracleXE112_Win64.zip
  • 即时客户端 - 11.2 - Instantclient-basic-nt-11.2.0.2.0.zip
  • ORACLE_HOME 变量 = C:\oracle\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

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

致命错误:未捕获的异常“Zend_Db_Adapter_Exception”与 消息“当前未安装 oci 驱动程序” D:\xampp\htdocs\b2bapptest\library\Zend\Db\Adapter\Pdo\Abstract.php:112 堆栈跟踪:#0 D:\xampp\htdocs\b2bapptest\library\Zend\Db\Adapter\Abstract.php(448): Zend_Db_Adapter_Pdo_Abstract->_connect() #1 D:\xampp\htdocs\b2bapptest\library\Zend\Db\Adapter\Pdo\Abstract.php(238): Zend_Db_Adapter_Abstract->query('select * from a...', Array) #2 D:\xampp\htdocs\b2bapptest\application\models\MiscMapper.php(790): Zend_Db_Adapter_Pdo_Abstract->query('select * from a...') #3 D:\xampp\htdocs\b2bapptest\application\layouts\scripts\layout.phtml(53): Application_Model_MiscMapper->getActiveAnnouncements() #4 D:\xampp\htdocs\b2bapptest\library\Zend\View.php(108): 包括('D:\xampp\htdocs...')#5 D:\xampp\htdocs\b2bapptest\library\Zend\View\Abstract.php(880): Zend_View->_run('D:\xampp\htdocs...') #6 D:\xampp\htdocs\b2bapptest\library\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 上 第 112 行

我错过了什么,有人可以帮忙吗,我已经用了一个多星期来找到解决方案:(

【问题讨论】:

  • 只是对上述问题的更新 - 将新的 php_oci8_11g.dll 文件上传到 ext 文件夹后,我在 php.ini 文件中添加了一个新的 extension=php_oci8_11g.dll 并重置 apache 以运行再次编写脚本。
  • 还有一个更新..这是我在 cmd D:\xampp\php>php PHP 中运行 php 后得到的结果:PHP 启动:无法加载动态库 'D:\xampp\php\ ext\php_oci8_11g.dll' - 找不到指定的模块。在第 0 行的未知中

标签: php oracle oci8 instantclient


【解决方案1】:

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

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

我能够使用 XAMPP 默认附带的 php 来纠正它。我也在使用 Windows 10 64 位,但使用了 xampp-win32-7.3.2-0-VC15 (php 7.3.2)。总而言之,我能够通过使用 32 位版本(操作系统除外)进行所有操作来获得正确的配置。

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-11-30
  • 1970-01-01
  • 2021-12-13
  • 1970-01-01
  • 2015-01-22
  • 2019-04-09
  • 1970-01-01
相关资源
最近更新 更多