semenov
Зарегистрирован: 10.05.2006 Сообщения: 2
|
Добавлено: Ср Май 10 2006 15:01 Заголовок сообщения: APACHE&PHP&ORACLE insert->select->!no result! |
|
|
Доброго дня!
Может кто сталкивалси с такой проблемкой...
когда вы юзаете пхп скрипт..
делаете коннект
вставляете строку в БД ,используя ОСИПАРС,ОСИЕКЗЕКУТЕ и даже сказали ОСИКОММИТ ...
все ок! ошибок нету...
делаем опять дисконнект ...коннект...
делаете селект данных в БД ...( нет!
.........
вызывая скрипт снова...данные оказываеться вставились!!!
и о чудо!! новые даннае вствляються но...выбираються тока старые...
вообщем такое вчепЯтление, что коммит происходит после окончания скрипта екзит()
НАРОД "ШО ДЕЛАТЬ!!!!"
Я решил по подробнее описать проблемку...
System: SunOS 5.8 x86
DB: Oracle 8.17 x86
WEB_SERVER: Apache/1.3.31 (Unix) mod_gzip/1.3.26.1a ApacheJServ/1.1.2 PHP/4.3.7 mod_ssl/2.8.17 OpenSSL/0.9.7d
Есть некая база...к ней реализован доступ через WEB.
при входе на стартовую страницу проходит аутентификация...далее вабираються данные...
отображаются пользователям и вот доходим до точки "ПРЕРЫВАНИЯ"
вдруг (неожиданно) пользователь (ГАд...ух и гад, но работа у него такая) хочет вставить
данные...заполняет форму и отсылает на сервер..данные до сервера дошли,
я их проанализировал...вообщем вставляю
$link=OCIlogon($_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW'],'');
$query='insert into table_1....';
(*1) $stmt = ociparse($link,$query);
OCIexecute($stmt, OCI_COMMIT_ON_SUCCESS);
OCIFreeStatement($stmt);
$query='select from table_1....';
$stmt = ociparse($link,$query);
OCIexecute($stmt);
while (OCIFetch($stmt)) {
.
вывожу данные (пользователь смотрит , что и как он ввёл)...но данных которые вот прямо перед этим вставлялись(*1) --- нету!!!!
смотрю при помощи sqlplus --- данные на месте.
при следующей отправки формы...опять тоже самое
такое впечатление , что данные в ORACLE попадают после die()...
И самое главное , что по теории данные должны быть доступны для данной сессии даже без COMMIT
вообщем впечатление такое что библиотека OCI кеширует даннае и даже команды
alter system flush shared_pool
alter system switch logfile
на нее(на библиотеку) , что и логично недействуют
может кто сталкивалси с такой проблемой
.
.
}
die()
Последний раз редактировалось: semenov (Ср Май 10 2006 16:42), всего редактировалось 1 раз |
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Ср Май 10 2006 15:16 Заголовок сообщения: |
|
|
1. Писать латинские слова, латинскими буквами и не коверкать их.
2. Писать какую СУБД вы используете.
3. Писать версию ПО. Какая версия Apache, PHP.
4. Не использовать бездумно методы доступа к данным. Они разные не просто так, а ПОЧЕМУ ТО! |
|