【发布时间】:2011-06-29 20:15:13
【问题描述】:
我正在尝试从 perl 脚本访问 MySQL 存储过程,但收到此错误:
“无法在给定的上下文中返回结果集”
如您所见,以下过程返回两个结果表。最初,我认为问题是由此造成的,但如果我调用只有一个 select 语句的存储过程,也会出现同样的错误。
这是过程:
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `GetPictureDataForSendMsg`(memIdVal VARCHAR(4))
begin
select val, size3
from members
where memid=memIdVal;
select id, filename, picname, picsize
from pictures
where memid=memIdVal order by id asc;
end
调用者:
$input = 'ABC1';
$dbh = DBI->connect("DBI:mysql:$db:$server;mysql_multi_statements=true", "$user", "$password");
my $result = $dbh->prepare('CALL GetPictureDataForSendMsg($input)') or error($q, "Problem with database call");
$result->execute or error($q, "Problem with database call");
错误链接到执行语句。我有必要的权限和最新版本的 MySQL;该过程在命令行中完美运行。
怎么了?感谢您的帮助。
【问题讨论】:
标签: mysql perl stored-procedures