我正在尝试将Oracle 11gXE与php连接。对于php,我下载了wamp64,这是一个64位版本,而Oracle 11gXE也是64位。我使用的是Windows 10也是64位。
现在我从未将Oracle连接到php,因此经过大量搜索后我发现了OCI和PDO_OCI,其中推荐使用OCI。
现在到处都提到了以下步骤。
$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";
}
?>
现在显示此错误
然后我再次搜索解决此问题。现在我遇到了以下问题。
所以我下载了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 请帮我解决这个问题?
答案 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。