Страница 1 из 1

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

Добавлено: 2012-05-08 2:18:09
ba4e1or
Здравствуте!
В 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>, то все работает.
Если предоставленной информации не достаточно, скажите, что еще показать.

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

Добавлено: 2012-05-18 10:50:01
Gloft
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

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

Добавлено: 2012-05-19 14:06:32
ba4e1or
Я не совсем понял Ваш комментарий. Процедура рабочая. Я не делаю INTO TABLE. Поясните мысль пожалуйста

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

Добавлено: 2012-05-19 15:49:28
Gloft
SELECT INTO не работает в mysql 5.0, но работает 5.1 и выше.
А какой именно ты SELECT делаешь?
Приведи пример кода.