powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP&Oracle (OCI)
7 сообщений из 7, страница 1 из 1
PHP&Oracle (OCI)
    #33708738
Nik0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех!
В общем проблема в следующем. Стоит у меня на машине Oracle XE, Apache 2.0.55 и php-5.1.2. Пытаюсь сделать запрос на простую выборку данных через OCI, но не получается =( Apache выдаёт мегаошибку и грит, что не буду я отображать страницу =( Хотя через ora всё работает. Только вот не надо писать что мол юзай ora.
Если написать так, то апач вылетает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<?php
$db1 = "(DESCRIPTION =                                        
    (ADDRESS = (PROTOCOL = TCP)(HOST = Nik0)(PORT = 1521)) 
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )"; 
                                            
if (@$c=OCILogon("system", "admin", $db1) or die("<h1>DB is not accessible"))
{
  $s = OCIParse($c, "select * from direction");
  OCIExecute($s, OCI_DEFAULT);
  while (OCIFetch($s)) {

  echo "ID=" . ociresult($s, "ID_DIRCT") .
          ", NAME=" . ociresult($s, "NAME_DIRCT") . " <br>\n";
	$id = ociresult($s, "ID_DIRCT");
	$name = ociresult($s, "NAME_DIRCT");
	$arr[$id]=$name;

  } 
OCICommit($c);
OCILogoff($c);

} else {
  $err = OCIError();
  echo "Oracle Connect Error " . $err[text];
}
?>
А если так, то всё в норме:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<?php
$db1 = "(DESCRIPTION =                                        
    (ADDRESS = (PROTOCOL = TCP)(HOST = Nik0)(PORT = 1521)) 
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )"; 
                                         
if (@$c=OCILogon("system", "admin", $db1) or die("<h1>DB is not accessible"))
{
echo "fse tip top";
 } 
OCILogoff($c);
} else {
  $err = OCIError();
  echo "Oracle Connect Error " . $err[text];
}
?>

Как я понял проблема в запросе... Но где???
...
Рейтинг: 0 / 0
PHP&Oracle (OCI)
    #33708808
вапа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуйте в запросе указать конкретные поля, к которым вы в дальнейшем обращаетесь.
...
Рейтинг: 0 / 0
PHP&Oracle (OCI)
    #33708824
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, апач так и пишет
xxx: Мегаошибка
?
...
Рейтинг: 0 / 0
PHP&Oracle (OCI)
    #33708825
zg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nik0Если написать так, то апач вылетаетпод виндой или NIX?

скорее всего PHP-расширение для оракла конфликтует
...
Рейтинг: 0 / 0
PHP&Oracle (OCI)
    #33708934
Nik0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу под виндой... Апач не говорит что за ошибка, просто вылетает особое окно придуманное Гейтсом =) Apache HTTP Server - обнаружена ошибка, ну и два варианта отправить или не отправлять отчёт =( А самое интересное, что апач не вылетает... Винда выдаёт сообщение, страница не загружается, а апач продолжает нормально работать. Вот сорс через ora-модуль, тут всё нормально работат...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
<?php

$db1 = "(DESCRIPTION =                                        
    (ADDRESS = (PROTOCOL = TCP)(HOST = Nik0)(PORT = 1521)) 
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )";                                              

if (@$c = ora_logon("Nik0@".$db1,"Nik0") or die("<H1>fatal error <br>" . ora_error())) 
	{
        $rezult_ok = "Connect to Oracle XE complite =)";
	$sql = "SELECT * FROM direction";
	$curs= ora_do($c, $sql);
	do 
		{
                $id = ora_getcolumn($curs,  0 );
		$name = ora_getcolumn($curs,  1 );
		$arr[$id]=$name;
		}	
  
	while (ora_fetch($curs));  
  	ora_logoff($c);
        } 
else 
	{
  	$rezult_er = "Oracle Connect Error " . ora_error();
	}
?>
...
Рейтинг: 0 / 0
PHP&Oracle (OCI)
    #33709020
zg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nik0Пишу под виндой... Апач не говорит что за ошибка, просто вылетает особое окно придуманное Гейтсом =) Apache HTTP Server - обнаружена ошибка, ну и два варианта отправить или не отправлять отчёт =( А самое интересное, что апач не вылетает... всё верно - пострадал только дочерний процесс апача - php, именно в нём и происходит ошибка. Если бы расширение под оракл вообще не работало, то апач бы не запустился, а так ошибка в дллке расширения. Кстати ошибку генерит сам оракл (описание ошибки, номер и т.д.), апач просто её выводит.

Хм.. ну если есть рабочий скрипт, то надо просто подбирать комбинации к запуску исходя из рабочего варианта.
...
Рейтинг: 0 / 0
PHP&Oracle (OCI)
    #33720590
Nik0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вау... Хотите приколю? В общем решил, в связи с ОЧЕНЬ сильным ограничением по времени, делать всё через модуль ора. Сделал процентов так 20 работы и решил ещё разок запустить пхп-шник где используется OCI... Работает =( Вот сижу и думаю - ПАЧЕМУ????
В чём может быть проблема? Просто нет уверености, так сказать, в завтрешнем дне =(
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP&Oracle (OCI)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]