PDA

Показать полную графическую версию : PHP 5.2.4: не работает механизм доступа к Oracle через ODBC???


BacuJIuu KypraHoB
05-02-2009, 07:45
Есть PHP скрипты. Прекрасно работали через ODBC с оракулом на PHP 4.4.7(9). Системщики обновили сервер, поставили туда PHP 5.2.4. Поставили корректно. Эти скрипты перестали работать. Почему???

mar
05-02-2009, 14:58
пока телепаты спешат на помощь :), попробуйте получить строки ошибок и посмотреть, какие именно функции в коде рабортают некорректно. Тогда можно будет попробовать понять, в чем дело.

BacuJIuu KypraHoB
05-02-2009, 17:15
Верно. Вот скрипт. Тут и ломаться-то нечему:

<?php
$con = odbc_connect("M_ALIAS", "USER", "PASS");
if ($con == 0) exit("ОШИБКА: Не могу подключиться к СУБД!");
$sql = "SELECT sysdate FROM dual"; # По-настоящему здесь огромный запрос
$res = odbc_exec($con, $sql);
odbc_result_all($res, "BORDER=1 CELLPADDING=2 CELLSPACING=0");
?>

M_ALIAS - имя источника данных, натравленного на "Драйвер Microsoft ODBC для Oracle". Тут мгновенно выдаётся такое:

Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][Диспетчер драйверов ODBC] Ошибка SQLAllocHandle для драйвера в SQL_HANDLE_ENV, SQL state IM004 in SQLConnect in D:\wwwdocs\Technolog\zhd.php on line 2
ОШИБКА: Не могу подключиться к СУБД!

Если поставить вместо M_ALIAS - O_ALIAS - имя источника данных, натравленного на "Oracle ODBC driver", то всё вообще виснет намертво и через 5 мин выдаётся сообщение, что страница не может быть отображена.

Неделю назад на PHP 4.4.9 всё летало в обоих вариантах.

Ещё. Оба эти алиаса на сервере проверил лично через оракловую утиль "Oracle ODBC Test". Оба рабочие.

Igor_I
05-02-2009, 20:41
А просто тупо сравнить 2 php-ini, новый и старый? Если старого нет, то напомните системщикам про законы Мерфи. :)

BacuJIuu KypraHoB
05-02-2009, 21:57
Igor_I, Нет "нового" php.ini. Он же и есть "старый".

Sham
06-02-2009, 14:06
http://ru.php.net/manual/ru/odbc.installation.php
проверьте наличие требуемых компонентов, и необходимость их апдейта/даундейта...

BacuJIuu KypraHoB
06-02-2009, 14:39
Sham, У нас сервер под Windows 2003. Соответственно PHP всё на борту несёт.

Sham
06-02-2009, 15:00
мб несовместимость встроенного ODBC с API оракла или драйвером... попробуйте откатиться до PHP4

BacuJIuu KypraHoB
06-02-2009, 15:20
попробуйте откатиться до PHP4 »
Шиш... Там руководят те, кто хочет быть на передовом острие. Собственно через библиотеки OCI всё работает. Обидно, что это испортилось. Переписывать придётся. Вот эта штука-то удобная - odbc_result_all().

Igor_I
06-02-2009, 19:51
Логи веб-сервера посмотреть?

BacuJIuu KypraHoB
09-02-2009, 07:45
Igor_I, попробую... Кислое это дело, идти к системщикам, просить... Речи эти слушать: "У нас всё в порядке. Это скрипты ваши кривые...".

Igor_I
10-02-2009, 14:28
BacuJIuu KypraHoB, на мой взгляд, попытка починить скрипт только глядя в браузер, либо исходники скрипта - неправильна. Мало-ли что они могла там накрутить.




© OSzone.net 2001-2012