加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL存储过程无法使用SELECT(基本问题)

发布时间:2021-04-06 03:03:04 所属栏目:编程 来源:网络整理
导读:我正在行使一个平台(perfectforms),它要求我在大大都查询中行使存储进程,而且从未行使过存储进程,我无法弄清晰我做错了什么.以下语句执行时没有错误: DELIMITER //DROP PROCEDURE IF EXISTS test_db.test_proc//CREATE PROCEDURE test_db.test_proc() SELEC

我正在行使一个平台(perfectforms),它要求我在大大都查询中行使存储进程,而且从未行使过存储进程,我无法弄清晰我做错了什么.以下语句执行时没有错误:

DELIMITER //
DROP PROCEDURE IF EXISTS test_db.test_proc//
CREATE PROCEDURE test_db.test_proc() SELECT 'foo'; //
DELIMITER ;

可是当我实行行使它时:

CALL test_proc();

我收到以下错误:

#1312 - PROCEDURE test_db.test_proc can't return a result set in the given context

我正在phpmyadmin 3.2.4,PHP Version 5.2.12中执行这些语句,而mysql处事器版本是5.0.89-community.

当我编写一个返回参数的存储进程,然后选择它时,统统正常(譬喻):

DELIMITER //
DROP PROCEDURE IF EXISTS test_db.get_sum//
CREATE PROCEDURE test_db.get_sum(out total int)
BEGIN
SELECT SUM(field1) INTO total FROM test_db.test_table;
END //
DELIMITER ;

事变正常,当我打电话给它:

CALL get_sum(@t); SELECT @t;

我获得的总和没题目.

最终,我必要做的是在存储进程中包括一个怪异的SELECT语句,因此我可以挪用它,并返回多行的多个字段.此刻我只是想让任何选择事变.

任何辅佐是极大的赞赏.

最佳谜底 弄清晰了.这不是PHP的错误(固然它曾经是) – 这是某些版本的phpmyadmin中的一个错误.间歇性地再次呈现沟通的错误,然后在各类倾覆中修复(见上文):

#1312 - PROCEDURE [name] can't return a result set in the given context

此举动好像仅限于phpmyadmin内存储进程中的SELECT语句.

行使像MySQL Workbench这样的客户端可以办理题目(可能你可以进级phpmyadmin,但假如你像我一样在共享处事器上,那就太疾苦了).

无论怎样,感激各人的辅佐.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读