我正在爲mysql認證學習,並且我學習的方式是通過做,我之前通過一個問題失敗了,如果我有更多的關注存儲過程我會得到它。任何我正在編造一些時髦的場景,我實際上會使用,所以這裏是我難以理解的場景。當我調用2 OUT參數時,MySQL存儲過程返回NULL值 - 請參閱代碼
/*TABLE STRUCTURE */
CREATE TABLE `members` (
`id` mediumint(8) unsigned NOT NULL auto_increment,
`name` varchar(255) default NULL,
`email` varchar(255) default NULL,
PRIMARY KEY (`id`)
);
/* PROCEDURE STRUCTURE */
USE WOL_STATISTICS;
DELIMITER $$
CREATE PROCEDURE `select_user`
(
IN `idnum` INT(11),
OUT `name` VARCHAR(255),
OUT `email` VARCHAR(255)
)
SQL SECURITY DEFINER
LANGUAGE SQL
NOT DETERMINISTIC
BEGIN
SELECT `name`, `email` FROM `members` WHERE `id` = `idnum`;
END $$
DELIMITER ;
/* CALL STATEMENT */
CALL select_user(20, @name, @email);
SELECT @name, @email;
我總是找回空值誰能告訴我爲什麼?
嗨,對不起,我實際上刪除了第二個ID時,我創建了我測試的表,這是一個錯誤。我仍然迷失。我已經將out參數重命名爲OUT'outname' VARCHAR(255), OUT'outemail' VARCHAR(255),我試圖使用以下調用select_user(20,'@outname','@outemail' ); SELECT'@outname','@outemail';但仍然null null – user2610856
像Thorsten說,分配值給你的變量。做'SELECT name,email INTO outname,outemail FROM ...'(如果我記得語法正確)。 – fancyPants