MySQL存储过程总是获取空值

时间:2011-09-13 23:58:13

标签: mysql stored-procedures

我对存储过程很新。我正在尝试编写一个非常基本的存储过程。这是:

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 ;

我有一个非常简单的数据库,其中包含一个表,其中一行包含id 1,字符串值为name。每次我调用的程序如下:

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

它总是返回NULL值:(

我在这个简单的问题上坐了4个小时,但仍然没有运气。希望得到你们的解决方案。

顺便说一下,我使用XAMPP 1.7.1 for Windows 32位,MySQL版本是5.1.33。

1 个答案:

答案 0 :(得分:0)

尝试此会话 -

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

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

如果result不为空,则尝试从过程 -

运行此SELECT语句
...
BEGIN
  SELECT * FROM tblname WHERE id = 1;
END//
...

再次打电话给它。