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

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

本文介绍了mysql存储过程执行prepare语句不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在存储过程中使用准备好的语句,但我不明白为什么它不起作用.我有 mysql5.7.9,我从 PHP->PDO

I need to use prepared statement inside stored procedure but I do not understand why it does not work. I have mysql5.7.9 and I call it from 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;

推荐答案

您没有将 @out_result 声明为变量

You are not delcaring @out_result as a variable

尝试在 BEGIN 下方添加此内容

Try adding this just below BEGIN

SET @out_result = out_result;

这篇关于mysql存储过程执行prepare语句不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-28 06:16