Проблем такая: В базе данных (firebird) хранится процедура, при вызове передаем ей некоторые параметры и на основании этих параметров она вносит записи в таблицу.
BEGIN
i=0;
N=0;
open Cursor1;
FETCH Cursor1 into :n;
WHILE (i<n) DO
BEGIN
times3 = DATEADD(MINUTE,:INTERV1,:times2);
times4 = DATEADD(MINUTE,:INTERV, :times1);
update record set TIMES = :times2, TIMES_K = :times3 where ((TIMES = :times1) and (TIMES_K = :times4)) and (DATES = :DATESS) and (ID_DOCTOR = :IDD);
times2 = times3;
times1 = times4;
i=i+1;
END
END
При выполнении следующей команды в SQL редакторе IbExpert все работает нормально, вносится 20 записей
execute procedure raspis_times ('09:30',20,5,20,'09.10.2011',2)
При выполнении следующего кода в php записей выводится 40
$sth = $db->prepare("execute procedure raspis_times ('09:30',20,5,20,'09.10.2011',2)");
$sth->execute();
При выполнении через query то же самое.
Результат следующего кода- ошибка. "Call to a member function execute() on a non-object"
$sth = $db->prepare("call raspis_times ('09:30',20,5,20,'09.10.2011',2)");
$sth->execute();
В общем как мне через pdo вызвать эту хранимую процедуру.
По форуму уже искал, мануалы курил - не получается.
Спустя 1 минута, 20 секунд (16.02.2012 - 03:43) derkien написал(а):
т.е SQL код одинаковый, но через php записей получается вдвое больше. А через call вообще работать не хочет. И еще одно уточнение, если в Php скрипте за вызовом процедуры вписать следующий код:
то он выполнится как положено один раз - запись будет одна. Т.е. php скрипт два раза не вызывается, ошибка не в этом.
$sth = $db->prepare("INSERT INTO RECORD (DATES,TIMES) VALUES ('09.10.2011','10:00:00')");
$sth->execute();
то он выполнится как положено один раз - запись будет одна. Т.е. php скрипт два раза не вызывается, ошибка не в этом.
Спустя 1 день, 2 часа, 25 минут, 45 секунд (17.02.2012 - 06:09) derkien написал(а):
Ну напишите ж кто нибудь)
Спустя 12 дней, 22 минуты, 36 секунд (29.02.2012 - 06:32) derkien написал(а):
Пьяный штоле?
Спустя 10 минут, 43 секунды (29.02.2012 - 06:42) Игорь_Vasinsky написал(а):
ну тут ребята больше на mysql ориентированы, с десяток может найдётся на postgre, а уж на firebird ....
Спустя 21 час, 24 секунды (1.03.2012 - 03:43) derkien написал(а):
Ок. Игорь_Vasinsky, спасибо за ответ.
Спустя 20 дней, 6 часов, 51 минута, 44 секунды (21.03.2012 - 10:34) derkien написал(а):
Актуальная информация, м.б. будет кому-нибудь полезна.
Двойное выполнение хранимой процедуры происходит при отправлении запроса с помощью PDO объекта.
Переписал код без использования PDO, с ibase_* функциями все работает как надо.
Тем не менее хочется разобраться в проблеме. М.б. в свете новой информации появятся какие-либо соображения.
Двойное выполнение хранимой процедуры происходит при отправлении запроса с помощью PDO объекта.
Переписал код без использования PDO, с ibase_* функциями все работает как надо.
Тем не менее хочется разобраться в проблеме. М.б. в свете новой информации появятся какие-либо соображения.