使用WAMP64进行OCI8配置

时间:2017-08-23 06:29:08

标签: php oracle dll wamp oci

我正在尝试将Oracle 11gXE与php连接。对于php,我下载了wamp64,这是一个64位版本,而Oracle 11gXE也是64位。我使用的是Windows 10也是64位。

现在我从未将Oracle连接到php,因此经过大量搜索后我发现了OCI和PDO_OCI,其中推荐使用OCI。

现在到处都提到了以下步骤。

  • 从oracle的官方网站下载OCI瘦客户端邮件。
  • 解压缩
  • 在环境变量中包含路径。
  • php.ini
  • 中启用extension = php_oci8_12c.dll(或者您拥有的oracle版本)
  • 然后使用此$con = oci_connect($username, $password, $connection_string);

现在我已按照步骤操作,但无法连接。 以下代码建立连接。

<?php
$username = "ABCD";
$password = "1234";
$connection_string = "localhost/XE";
$con = oci_connect($username, $password, $connection_string);
if(!$con) {
    echo "Faild to connect";
}
else {
    echo "Success";
}
?>

现在显示此错误

enter image description here

然后我再次搜索解决此问题。现在我遇到了以下问题。

  1. 在我的php.ini中我没有php_oci8_11g.dll,我有php_oci8_12c.dl
  2. 还有/ ext。
  3. 中的php_oci8_12c.dll

    所以我下载了php_oci8_11g.dll并提及 extension = php_oci8_11g.dll 。 然后尝试再次运行代码,但没有工作。然后在stackoverflow中的一篇文章中我看到32位瘦客户端正在工作,因为他们有oracle 32bit和xampp 32bit,但我有 Oracle 11gXE 64位和wamp 64bit 。所以我已经下载了64位瘦客户端。

    即使我在 php扩展程序窗格中看不到php_oci8_11g。

    php extension pane 请帮我解决这个问题?

1 个答案:

答案 0 :(得分:0)

有几点需要注意:

  • 您需要确保所有的所有内容都具有相同的32或64位架构:PHP,Web服务器,Oracle客户端库以及(如果您使用的是Instant Client)也是MS VS Redistributable。 (您在尝试使用Instant Client时是否安装了可再发行组件?有关详细信息,请查看Instant Client下载页面)

  • 您希望PHP使用的Oracle客户端库的版本(在Oracle XE安装中,或从Instant Client中)必须在PATH中(在任何其他Oracle版本之前)。 Windows上多个版本的库之间的冲突很难控制。 (Linux更容易......)

  • Oracle客户端库的版本应该等于或大于使用E.g编译扩展的Oracle客户端版本。 php_oci8_12c是使用Oracle客户端12c编译的(但允许它连接到较旧和较新的数据库版本),因此Oracle 12.1或12.2客户端库必须位于PATH中(在其他Oracle版本之前)

  • 如果要从PECL下载扩展,则需要确保获得线程安全或非线程安全的DLL版本以匹配您的PHP。它必须是您正在使用的相同版本的PHP。