MySQL + php хранимые процедуры

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
ba4e1or
рядовой
Сообщения: 10
Зарегистрирован: 2011-11-18 22:14:52

MySQL + php хранимые процедуры

Непрочитанное сообщение ba4e1or » 2012-05-08 2:18:09

Здравствуте!
В MySQL есть хранимая процедура следуещего вида:

Код: Выделить всё

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_into_whate_absence`(IN time_out TIME,IN time_came TIME, IN date_in DATE, IN staff_in INT(11), why_in VARCHAR(80))
BEGIN
    DECLARE iCount INT;
    SELECT COUNT(*) INTO iCount FROM whate_absence WHERE staff_staff_id = staff_in AND date = date_in;
    IF iCount != 0 THEN
        SELECT 'absence_NOW';
    ELSE
        INSERT INTO whate_absence (time_out, time_came, date, staff_staff_id, why) VALUE (time_out, time_came, date_in, staff_in, why_in);
    END IF;
END
DELIMITER ;
Если из кода php вызвать эту процедуру с таким возратом

Код: Выделить всё

mysql> CALL insert_into_whate_absence('9:00', '13:00','2012-05-01', 18, 'Уехал к маме');
+-------------+
| absence_NOW |
+-------------+
| absence_NOW |
+-------------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)
А потом в коде запросить SELECT, то вместо массива строки, я получаю пустой возврат.
Если процедура отрабатывает на INSERT, то код работает без проблем.
Почему так?
Если все делать из консоли mysql>, то все работает.
Если предоставленной информации не достаточно, скажите, что еще показать.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Gloft
лейтенант
Сообщения: 645
Зарегистрирован: 2008-03-09 11:32:12
Откуда: Москва

Re: MySQL + php хранимые процедуры

Непрочитанное сообщение Gloft » 2012-05-18 10:50:01

1.8.5.1. SELECT INTO TABLE
MySQL Server doesn't support the SELECT ... INTO TABLE Sybase SQL extension. Instead, MySQL Server supports the INSERT INTO ... SELECT standard SQL syntax, which is basically the same thing.
https://dev.mysql.com/doc/refman/5.0/en ... table.html

ba4e1or
рядовой
Сообщения: 10
Зарегистрирован: 2011-11-18 22:14:52

Re: MySQL + php хранимые процедуры

Непрочитанное сообщение ba4e1or » 2012-05-19 14:06:32

Я не совсем понял Ваш комментарий. Процедура рабочая. Я не делаю INTO TABLE. Поясните мысль пожалуйста

Gloft
лейтенант
Сообщения: 645
Зарегистрирован: 2008-03-09 11:32:12
Откуда: Москва

Re: MySQL + php хранимые процедуры

Непрочитанное сообщение Gloft » 2012-05-19 15:49:28

SELECT INTO не работает в mysql 5.0, но работает 5.1 и выше.
А какой именно ты SELECT делаешь?
Приведи пример кода.