本文介绍了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语句不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!