[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PDO вызов хранимой SQl процедуры
derkien
Доброго времени суток.
Проблем такая: В базе данных (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 скрипте за вызовом процедуры вписать следующий код:

$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_* функциями все работает как надо.
Тем не менее хочется разобраться в проблеме. М.б. в свете новой информации появятся какие-либо соображения.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.