我需要在存储过程中使用预处理语句,但我不明白为什么它不起作用。我有mysql5.7.9,我从PHP-> PDO
调用它CREATE PROCEDURE my_sp(
OUT out_result VARCHAR(32)
)
BEGIN
/*This work OK*/
SELECT pow(2,2) INTO out_result;
/*NOT work Variable prefixed with @ */
SELECT pow(2,2) INTO @out_result;
/*NOT work (with or without @ before out_result variable)*/
PREPARE stmt FROM 'SELECT pow(2,2) INTO out_result';
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END;
答案 0 :(得分:2)
您不是将@out_result视为变量
尝试在BEGIN
下方添加此内容SET @out_result = out_result;