Mysql中的存储过程只返回一个列数据

时间:2011-12-19 09:23:46

标签: php mysql

简单选择存储过程,但只获得一列,其他人获得的结果为空。

有人可以告诉我错误在哪里..

DELIMITER $$
DROP PROCEDURE IF EXISTS `p4`.`get_one_user_new`$$
CREATE PROCEDURE `p4`.`get_one_user_new`
(
IN USER_ID INT(11),
OUT USER_NAME VARCHAR(255),
OUT FIRST_NAME VARCHAR(255),
OUT EMAIL VARCHAR(255)
)
BEGIN
SELECT username,first_name,email
INTO USER_NAME, FIRST_NAME, EMAIL
FROM p4_users
WHERE id = USER_ID;
END $$
DELIMITER ;



CALL get_one_user_new('4',@USERNAME,@FIRST_NAME,@EMAIL);
SELECT @USERNAME,@FIRST_NAME,@EMAIL;

1 个答案:

答案 0 :(得分:0)

您的名称冲突,您需要确保您的变量名称不会与您的列名冲突。

CREATE PROCEDURE `p4`.`get_one_user_new`
(
  IN PUserid INT(11),
  OUT PUsername VARCHAR(255),
  OUT PFirstname VARCHAR(255),
  OUT PEmail VARCHAR(255)
)
BEGIN
  SELECT username,first_name,email
  INTO PUsername, PFirstname, PEmail
  FROM p4_users
  WHERE id = PUserid;
END $$