使用php PDO执行存储过程只返回最后的结果集


Executing Stored Procedure using php PDO is only returning the last result set

连接成功后,我试图从存储过程中获取数据。但是下面的代码只成功返回SP的最后一个结果集,而不是所有的结果集。

$dbh = new PDO (.....);
$sth = $dbh->prepare("EXEC ......");
$sth->execute();
while($result = $sth->fetch(PDO::FETCH_ASSOC)) {
    print_r($result);
}

有什么我需要添加到我的代码?

谢谢。

如果需要Firebird存储过程中的多行,则需要从中选择,而不是执行它。虽然IIRC在执行它时只会得到第一个结果,与您在问题中所说的相反。

所以使用:

select * from your_procedure()