MySQL存储过程错误#2014 - 命令不同步

时间:2015-05-01 17:02:58

标签: php mysql stored-procedures phpmyadmin

我有一个相当简单的存储过程。

DELIMITER //
CREATE PROCEDURE getBuyerID(
     IN personID INT(11),
     OUT buyerID INT(11)
)
BEGIN
SELECT BUYER_ID FROM BUYER WHERE PERSON_ID = personID;
END //
DELIMITER ;

存储过程没有任何错误。为了测试它,我尝试通过phpMyAdmin运行对存储过程的调用,使用以下行。

CALL getBuyerID('28',@buyer_id); SELECT @buyer_id;

当我运行以上行时,我收到此错误。

#2014 - Commands out of sync; you can't run this command now

我注意到如果我只使用部分调用,我将在phpMyAdmin中获取存储过程的结果。

CALL getBuyerID('28',@buyer_id);

但我不知道为什么原来的电话无法正常工作,因为这是我以前打过电话的原因。在phpMyAdmin中测试时,调用工作正常,但我不知道如何通过PHP调用存储过程时检索结果。以下是我过去用来调用存储过程并从PHP中获取结果的代码。

$query  = "CALL getBuyerID('$person_id',@buyer_id)";
$result = mysql_query($query);

$query    = "SELECT @buyer_id as b";
$result   = mysql_query($query);
$row      = mysql_fetch_array($result);
$buyer_id = $row['b'];

echo "Buyer ID is $buyer_id";

0 个答案:

没有答案