mysql存储过程执行prepare语句不起作用

时间:2017-03-04 10:24:01

标签: mysql stored-procedures

我需要在存储过程中使用预处理语句,但我不明白为什么它不起作用。我有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;

1 个答案:

答案 0 :(得分:2)

您不是将@out_result视为变量

尝试在BEGIN

下方添加此内容
SET @out_result = out_result;