Ошибка при вызове oci_parse

z9ka

Новичок
Ошибка при вызове oci_parse

Ситуация:
Ошибка при запуске из командной строки скрипта
<?
$con = oci_connect($login, $pass, $db) or die('error');
$stmt = oci_parse($con, "select sysdate from dual");
?>

Выходит окно с сообщением:
CLI - обнаружена ошибка. Приложение будет закрыто.

Среда:
Win XP / PHP 5.1.2 / Oracle Client 10.1 /
php_oci8.dll($Revision: 1.269.2.8 $) из комплекта PHP 5.1.2
ORACLE_HOME прописан
Сервер Oracle 9.2 где-то отдельно

Вопрос:
1) В чем собственно может быть ошибка?
2) Где можно брать последнюю версию php_oci8.dll для win32?
 

userok

Новичок
Занимаюсь разработкой. С PHP+Apche+Oracle буквально 5 секунд.
Имеется Оракл где-то 9i
На моей машине стоит XP, Apache 1.3.34 + PHP 5.1.2
Попытка вывсести
PHP:
<?php
$conn = oci_connect('user', 'pass', 'base');
if (oci_error())
{ echo oci_error();
  exit;}
  else { echo 'Ok<br>';}
  $sel = oci_parse($conn, 'select sysdate from dual');
  
  oci_execute($sel);
  while ($re = oci_fetch($sel))
  {
  	echo ociresult($sel, "SYSDATE");
  }
  
oci_close($conn);
?>
заканчиывается обвалом Apache.
Самое интересное, что когда я пытаюсь выполнить скрипт с другим запросом, то у меня выводится часть информации, потом подвисает на несколько секунд и обваливается.
Попытка вставить dll из snaps ни к чему не привела. я даже при phpinfo() ни чего не вижу, она ен подключается.
Помогите чайнику, плз.

-~{}~ 06.04.06 11:25:

что глупый вопрос, да ?
 

tony2001

TeaM PHPClub
>заканчиывается обвалом Apache.
"обвал", "обваливается" - с некоторых пор я подобные слова считаю аналогом "памагите".

>Попытка вставить dll из snaps ни к чему не привела.
вставить куда? вставить как?
DLL конкретно откуда? из какого снапшота?

>я даже при phpinfo() ни чего не вижу, она ен подключается.
просто так, молча, не подключаться она не может.
в логах есть ошибки, PHP в консоли ругается и т.п.
 

userok

Новичок
Автор оригинала: tony2001
>заканчиывается обвалом Apache.
"обвал", "обваливается" - с некоторых пор я подобные слова считаю аналогом "памагите".

>Попытка вставить dll из snaps ни к чему не привела.
вставить куда? вставить как?
DLL конкретно откуда? из какого снапшота?

>я даже при phpinfo() ни чего не вижу, она ен подключается.
просто так, молча, не подключаться она не может.
в логах есть ошибки, PHP в консоли ругается и т.п.
1. где здесь ирония ? когда приложение говорит, что была недопустимая ошибка и оно будет закрыто, от я это называю обвалом. и конечно же я прошу помощи, иначе бы я сюда даже не заглянул.

2. встаивл в ext\
как, да просто копированием (помоему логично)
отсюда http://pecl4win.php.net/download.php/ext/5_1/5.1.2/php_oci8.dll

3. виноват, грю же чайник..
в логах апача: PHP Startup: Unable to load dynamic library 'c:\php5\ext\php_oci8.dll' - Не найдена указанная процедура.

и скажу, что я пришёл сюда за ответами, раз сам не смог добиться значит чего-то не знаю, вот и спрашиваю, так что прошу встречать без штыков.
 

tony2001

TeaM PHPClub
>1. где здесь ирония ? когда приложение говорит, что была недопустимая ошибка
>и оно будет закрыто, от я это называю обвалом. и конечно же я прошу помощи,
> иначе бы я сюда даже не заглянул.

ок, поясняю:
есть такое понятие как backtrace. она даёт полезную информацию о проблеме.
"обвал", "недопустимая ошибка" - это НОЛЬ информации.

>2. встаивл в ext\
>как, да просто копированием (помоему логично)

ну, это тебе может быть логично.
а другим три дня приходится объяснять.

>Не найдена указанная процедура.

клиент Оракла стоит?
 

userok

Новичок
про понятие backtrace я ничего не знаю... :(

клиент оракла стоит

делал некоторые эксперименты (при DLL oci8 идущей в архиве php 5.1.2)
открывал и закрывал коннект без запроса в базу - всё хорошо.
если же вставлял oci_parse вот тут то апач и падал. если я пытался вытащить из базы строк 50 по запросу, то мне возвращались значения но не все (т.е. данные, которые отображались, обрывались посередине поля), броузер делал вид, что грузит, а потом апачь кричал об ошибке
 

Romka

Новичок
Здравствуйте! у меня похожая проблема.
win2003, apache 2.0.55, php 5.1.2. oracel 9.
При использовании функции oci_parse апач выдает ошибку: Parent: child process exited with status 3221225477 -- Restarting.
почитал вот здесь http://forums.mysql.com/read.php?52,42124,49591#msg-49591 , переложил инишку в \php5 поправил httpd.conf чтобы он видел этоу инишку - бесполезно. Расскажите как решили проблему.
 

userok

Новичок
к сожалению, проблему не решил. это не мои пофильные задачи, занимался по мере надобности, сейчас этими задачами занимается другой человек, так что история продолжения не получила
 

David

Новичок
Здравствуйте!
Пожалуйста! Ну кто-нибудь решил эту проблему? Поделитесь решением пожалуйста!
Честно, для работы необходимо :(
Почему вобще все так плохо с OCI8 что в 4мPHP что в 5м? Тот не закрывает соединение с базой нормально, этот вобще работать не хочет :(
Есть решение PDO, но там свои проблемы, дикое пожирание памяти при работе :(
 

tony2001

TeaM PHPClub
>Ну кто-нибудь решил эту проблему? Поделитесь решением пожалуйста!
уже давным давно.
использование последней версии PHP - универсальное решение всех проблем.

>Честно, для работы необходимо
Верю.

>Почему вобще все так плохо с OCI8 что в 4мPHP что в 5м?
Насчет 4-го ничего поделать не могу.
Насчет 5-го - подробнее, плз.

>Тот не закрывает соединение с базой нормально, этот вобще работать не хочет
Ааа.. "не хочет работать". Сразу всё стало ясно и понятно.

>Есть решение PDO, но там свои проблемы, дикое пожирание памяти при работе
Есть еще вариант - починить всё самому и прислать патч.
 

David

Новичок
Здравствуйте!
Спасибо за ответ.

Автор оригинала: tony2001
>Ну кто-нибудь решил эту проблему? Поделитесь решением пожалуйста!
уже давным давно.
использование последней версии PHP - универсальное решение всех проблем.
Спасибо, а последняя версия это какая?
Почему спрашиваю, я snaps скачал, вроде вобще самую последнюю, а подключить OCI8 не получается, при подключении PHP (как модуль Апач) получаю ругань на саму OCI8, 2 сообщения, PHP не может найти точку входа в библиотеку, потом получаю сообщение что функции в модуле OCI8 недостает и библиотеку он загрузить не может, и потом Windows закрывает с критической ошибкой apache.
Апач второй

пробуя запустить просто PHP_CGI.EXE получаю сообщение:
"Точка входа в процедуру OCILobREAD2 не найдена в библиотеки DLL OCI.dll"

потом другое сообщение:
"PHP Startup: Unable to load dynamic library 'c:\...\php_oci8.dll' - не найдена указанная процедура"

ну и потом уже Windows начинает ругаться на недопустимую операцию в php5ts.dll и закрывает php


А при прдключении старого PHP 5.1.2 он запускается, но сделать что-либо серьезное кроме соедениться и разъедениться с базой я не могу, вылетает с ошибкой и закрывается системой. В принципе я ничего с базой не делаю, я просто выборку из нее делаю, правда сами запросы тяжелые со множеством подзапросов.



>Есть решение PDO, но там свои проблемы, дикое пожирание памяти при работе
Есть еще вариант - починить всё самому и прислать патч.
А вот извините такого решения нет, я пользователь PHP я не разработчик, и я очень уважаю разработчиков и уважаю их труд, но простите, мы не LINUX, ссылки на самостоятельное исправление багов, простите, это не в тему, это для домашнего компа и энтузиазма пока деньги есть... простите за грубость, но честно не в тему что в LINUX сообществе что здесь предложения исправлять софт самому пользователю. А упор и давление на бесплатность софта... не знаю, при ближайшем расмотрении он не такой уж и бесплатный...
 
Сверху