我对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。
在F:\PHP_x64\ext\
文件夹中,我有文件php_oci8_12c.dll
,如下所示:
在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时,会显示下一个错误:
答案 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
。