为什么PHP没有看到扩展dll文件?

时间:2018-10-22 13:49:16

标签: php oracle iis

我对PHP的奇怪行为感到有点困惑,需要建议如何解决它。

我正尝试测试非常简单的php脚本:

$conn = oci_connect($dbUser, $dbPassword, $dbServerName . "/" . $dbName);
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

不幸的是,它使我下一个错误

[22-Oct-2018 19:22:23] PHP Warning:  PHP Startup: Unable to load dynamic library 'F:\PHP_x64\ext\php_oci8_12c.dll' - The specified procedure could not be found.
 in Unknown on line 0
[22-Oct-2018 19:22:23] PHP Fatal error:  Call to undefined function oci_connect() in F:\TEST\complain\test.php on line 8

我有位于IIS Web服务器中的项目。项目使用PHP版本5.6.28。

enter image description here

F:\PHP_x64\ext\文件夹中,我有文件php_oci8_12c.dll,如下所示: enter image description here

php.ini文件中,我没有注释以下行:

extension=php_oci8_12c.dll

还在php.ini文件中添加:

extension_dir = "F:\PHP_x64\ext\"
[PHP_OCI8_12C]
extension=php_oci8_12c.dll

我多次重新启动IIS Web服务器。

当我尝试从控制台调用php.exe时,会显示下一个错误:

enter image description here

1 个答案:

答案 0 :(得分:0)

最后,我找到了适合我的解决方案。

我用于将PHP与Oracle连接的代码:

$conn = oci_connect($dbUser, $dbPassword, "(DESCRIPTION=(ADDRESS_LIST =(ADDRESS=(PROTOCOL = TCP)(HOST=$dbServerName)(PORT = 1521)))(CONNECT_DATA=(SID=$dbSID)))", 'AL32UTF8') or die("Could not connect to ORACLE");

在我使用SID的情况下,您也可以使用SERVICE_NAME