Почему PHP не видит расширение файла DLL? - PullRequest
0 голосов
/ 22 октября 2018

Меня немного смущает странное поведение 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.Использование проекта 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 несколько раз.

Когда я пытаюсь вызвать php.exe из консоли, отображается следующая ошибка:

enter image description here

1 Ответ

0 голосов
/ 25 октября 2018

Наконец, я нашел решение, которое работает для меня.

Код, который я использую для соединения 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...