Я использовал PHP 5.2.0-8 + etch16 / oci_connect для подключения к базе данных Oracle моей компании и отображения информации на нашем веб-сайте (доступном для внешних IP-адресов). С тех пор, как мы обновили нашу версию БД (до 11g Release 11.2.0.4.0), я больше не могу подключиться к базе данных.
Страница продолжает загружаться (oci_set_call_timeout
не работает), и ничего не отображается , Я знаю, что код работает, и учетные данные в порядке, потому что я использую тот же код на другой странице (видимой только для внутренних IP-адресов), и у меня не было никаких проблем после обновления. Я использую следующий код:
$conn = oci_connect('user', 'password', 'server', 'charset');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
echo "Error";
}
else{
echo "OK";
}
При запуске phpinfo возвращается раздел oci:
oci8
OCI8 Support enabled
Version 1.4.5
Revision $Revision: 305257 $
Active Persistent Connections 0
Active Connections 0
Oracle Instant Client Version 11.1
Temporary Lob support enabled
Collections support enabled
Directive Local Value Master Value
oci8.connection_class no value no value
oci8.default_prefetch 100 100
oci8.events Off Off
oci8.max_persistent -1 -1
oci8.old_oci_close_semantics Off Off
oci8.persistent_timeout -1 -1
oci8.ping_interval 60 60
oci8.privileged_connect Off Off
oci8.statement_cache_size 20 20
На странице, доступной только для внутренних IP-адресов, версия oci
имеет вид 1.4.9, и он работает на Windows Server 2003 (я знаю, что он старый). Внешняя страница (не работающая) имеет версию 1.4.5 oci
и работает в формате Linux jedi-ng 2.6.25. У меня нет доступа к linux серверу (только к папке, где хранится php / html), но я могу запустить некоторые вещи, используя shell_exec()
.
Это проблема с версией (Я не могу больше подключиться к Oracle 11g, используя старую версию php / oci) или это просто проблема с подключением, которую я могу решить, попробовав другой подход?
Не стесняйтесь задавать вопросы, если вам нужно .
Заранее спасибо.