Ошибка в строке oci_connect
. Но моя проблема в том, что ошибка не отображается на странице. Даже если я ставлю $e = oci_error();
он больше не будет выполнен, чтобы показать ошибку. Я попробовал try/catch, но он тоже не работал.
Когда я изменяю детали соединения для подключения к другой базе данных, он работает. Детали подключения, которые я использую, работают в SQL Developer.
$db='(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = '. $GLOBALS['HOST']. ')(PORT = '. $GLOBALS['PORT'] .'))
)
(CONNECT_DATA =
(SID = '. $GLOBALS['SID'] . ')
)
)';
echo '<br>USERNAME: *'. $GLOBALS['USERNAME'] .'*';
echo '<br>PASSWORD: *'. $GLOBALS['PASSWORD'] .'*';
echo '<br>2 db: *'. $db .'*';
$conn = oci_connect($GLOBALS['USERNAME'], $GLOBALS['PASSWORD'], "$db");
echo 'success';
die;
На самом деле нет ошибок при попытке изменить параметр файла PHP.ini, чтобы показать все ошибки, затем я обновил версию Oracle Instant Client.
Сначала я проверяю, какую версию Oracle я использую:
select * from v$version
where banner like 'Oracle%';
Вывод:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
После этого я загрузил новую версию Oracle Instant Client версии 11.2.0.3.0 и установил ее на PATH и перезапустил сервер. Тогда это сработало!