Хранимая процедура MySQL всегда получает пустые значения - PullRequest
0 голосов
/ 14 сентября 2011

Я очень плохо знаком с хранимой процедурой. Я пытаюсь написать очень простую хранимую процедуру. И вот оно:

DELIMITER //

    CREATE PROCEDURE `getname` (IN a_id INT, OUT a_name VARCHAR(50))

    BEGIN
         SELECT name INTO a_name FROM tblname WHERE id = a_id;
    END //

DELIMITER ;

У меня очень простая база данных с одной таблицей, одной строкой с идентификатором 1 и строковым значением в качестве имени. Каждый раз, когда я вызываю процедуру, как:

CALL getname(1, @a_name);
SELECT @a_name;

всегда возвращает значения NULL: (

Я сижу последние 4 часа с этой простой проблемой, но все равно не повезло. Надеюсь получить решение от вас, ребята.

Кстати, я использую XAMPP 1.7.1 для 32-битных Windows с версией MySQL 5.1.33.

1 Ответ

0 голосов
/ 14 сентября 2011

Попробуйте в этом сеансе -

CALL getname(1, @a_name);
SELECT @a_name;

SELECT * FROM tblname WHERE id = 1; -- Is there any result?

Если результат не пустой, попробуйте запустить этот оператор SELECT из процедуры -

...
BEGIN
  SELECT * FROM tblname WHERE id = 1;
END//
...

и вызвать его снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...