Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > не выполняется команда insert


Автор: liliputochka 16.3.2006, 13:19
Добрый день.
В скрипте указываю при вводе данных пользователем помещать эти данные в базу, но сама команда не выполняется, при чем я проверяла отдельно команду. Команда рабочая, а данные не вводятся. Данные при вводе анализируются, извлекаются из полей ввода корректно, т.е. операции с данными выполняются верно.
Код

 $d = date("d m Y");
 $sel = OCIParse($c,"select * from ELSEADMIN.TBL_NOWUSER where TIME='$d'");
 $exec = OCIExecute($sel, OCI_DEFAULT);
 if(!$sel){
    $add = OCIParse($c,"insert into ELSEADMIN.TBL_NOWUSER(USER_ID,TIME,STATUS)values('$author_id','$d','$status')");
    OCIExecute($add, OCI_DEFAULT);
 }


Автор: batigoal 16.3.2006, 13:37
Может, просто commit нужен?

Автор: liliputochka 16.3.2006, 14:06
Не помогло!

Автор: LSD 16.3.2006, 14:30
Т.е. ты выполняешь insert и у тебя, ни ошибки не возникают, ни данные не вставляются?
Добавлено @ 14:31
Попробуй сразу после вставки данных выбрать их select-ом.

Автор: liliputochka 16.3.2006, 14:45
Большая странность:
закоментировала 2 строки
Код

#if(!$sel){
                $add = OCIParse($c,"insert into ELSEADMIN.TBL_NOWUSER(USER_ID,TIME,STATUS) values('$author_id','$d','$status')");
                OCIExecute($add, OCI_DEFAULT);
            #}

после чего считать зарегистрировавшихся людей стали правильно, но в базу все равно не заносят! Не понимаю как он может считать, если в базе данных нет? Скрипт подсчета:
Код

$result = OCIParse($c,"select COUNT(*) as COUNT from ELSEADMIN.TBL_NOWUSER where TIME='$d'");
OCIExecute($result,OCI_DEFAULT);
OCIFetch($result);
$count = ociresult($result,"COUNT");


Автор: LSD 16.3.2006, 14:51
1. Я не силен в PHP, что за условие проверяется по if(!$sel)?
2. Как ты выполняешь commit?
Код
OCICommit($connect);

Так?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)