PHP OCI8 扩展不适用于 PHP 7 64 位

标签 php windows oracle oracle-call-interface

我已经安装了 APACHE 2.4 x64 和 PHP7 x64 并下载了 PHP OCI 64 位库,但问题是每当我从 cli 运行 PHP 脚本时,它都会显示

PHP Startup: Unable to load dynamic library 'E:\software\server\php-7.0.11-Win32-VC14-x64\ext\php_oci8_11g.dll' - %1 is not a valid Win32 application

此外,当我从 URL 调用 Web 应用程序时,它会说

Call to undefined function oci_pconnect()

我下载的OCI扩展也是64位的。这是链接:

http://windows.php.net/downloads/pecl/releases/oci8/2.1.2/php_oci8-2.1.2-7.0-ts-vc14-x64.zip

有人可以指导解决这个问题吗?

最佳答案

您可能混合使用了 TS(线程安全)和 NTS(非线程安全)版本。这些不会一起工作。了解有关 PHP 线程安全的更多信息 here .

PHP 7.0.11 NTS x64 , OCI8 2.1.2 NTS x64和 InstantClient 11.2.0.4.0 x64可以完美地协同工作(我刚刚下载了这三个文件并在新的 Win2K8 环境中测试了它们)。

请记住安装最新的 VC14 运行时 (Visual Studio 2015) 并修改 PATH 系统环境变量以包含 PHP 和 InstantClient 的目录,例如C:\php;C:\instantclient_11_2

关于PHP OCI8 扩展不适用于 PHP 7 64 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39664801/

相关文章:

PHP session 在重定向后丢失

javascript - 使用 PHP 和 AJAX 获取页面名称而不是页码

c - "warning : No new line at end of file"是什么意思?

python - 在 Windows 上安装 SciPy

sql - 为什么我的日期字段的 SQL 查询有时需要 trunc() (Oracle)?

oracle - 通过 SQLLDR 在 Oracle 中加载数据

oracle - GORM-使用订单和锁定选择最大记录-ORA-02014

php - AJAX 无法将数据发送到 PHP

javascript - 排序时保留 JSON 数组

windows - 如何在 Git Bash 中使用 Windows 网络路径