为啥在使用简单存储过程时出现 MySQL 错误 #1312?
Posted
技术标签:
【中文标题】为啥在使用简单存储过程时出现 MySQL 错误 #1312?【英文标题】:Why Am I Getting MySQL Error #1312 when Using a Simple Stored Procedure?为什么在使用简单存储过程时出现 MySQL 错误 #1312? 【发布时间】:2011-02-19 23:59:09 【问题描述】:我正在尝试学习如何使用 mysql 存储过程。 MySQL 接受了我的程序:
CREATE PROCEDURE SimpleProc()
BEGIN
SELECT * FROM myTable;
END
(在phpMyAdmin中,我设置了//作为分隔符。真实版本具有实际表的名称而不是myTable。)。
但是,当我使用 CALL SimpleProc();
调用该过程时,我收到错误“#1312 - PROCEDURE mydb.SimpleProc 无法返回给定上下文中的结果集”。
我了解到某些版本的 php 或 phpMyAdmin 不能用于存储过程。
我正在使用在带有 MAMP 1.9 的 Mac 上运行的本地主机。我有 MySQL 5.1.44、PHP 5.2.13 和 5.3.2、phpMyAdmin 3.2.5。有谁知道存储过程是否适用于我的设置?我做错了什么吗?有什么建议吗?
向大红色大喊,争取在 Lax 获得三倍加时赛胜利。
谢谢, 拉克西米迪
【问题讨论】:
【参考方案1】:是的,在某些旧版本的 phpMyAdmin 中似乎存在一个错误,这可能会导致您遇到 1312 错误。从 phpMyAdmin 调用包含 SELECT
语句的存储过程时,可能会发生这种情况。
您可能需要查看以下帖子以进一步阅读:
MySQL Stored Procedures not working with SELECT (basic question) How do I write an SP in phpMyAdmin (MySQL)? (cmets)此错误仅影响 phpMyAdmin,您仍然可以从其他任何地方调用存储过程。
【讨论】:
嘿丹尼尔,感谢您提供有趣的信息。看起来其他人大致运行我的设置也有同样的问题。现在,我必须弄清楚如何从 php.ini 调用 mysql 存储过程。再次感谢您提供非常有用的信息。 -Laxmidi以上是关于为啥在使用简单存储过程时出现 MySQL 错误 #1312?的主要内容,如果未能解决你的问题,请参考以下文章
为啥在尝试更新 MySQL 条目时出现“超过锁定等待超时”错误?
HSQL 为啥在使用 GET DIAGNOTICS <variable> = ROW_COUNT 时出现错误