Я пытаюсь подключиться к базе данных Oracle с помощью PHP в Windows.
$db = "BLM = (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = host)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = blm)
)
)";
$conn = oci_connect('blmuser', 'blmuser', $db);
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
Я получаю ошибку
oci_connect(): ORA-24315: illegal attribute type
Я попытался установить мгновенный путь клиента, но безрезультатно.
phpinfo ()
Решил вопрос. Я пытался только с php_oci8_11g.dll включен в php.ini. Включено расширение php_oci8.dll и все работает нормально.
Просто удалите BLM=
так как нужно дать описание только в качестве идентификатора соединения. Первый нужен, когда вы хотите сослаться на псевдоним (BLM), как в tnsnames.ora
вместо полного описания.
$db = "(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = host)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = blm)
)
)";
Обратите внимание, как отмечены расширения:
У тебя должно быть extension=php_oci8.dll
а потом extension=php_oci8_11g.dll
: