2016-10-26 32 views
1

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

$dbh = new PDO (.....); 

$sth = $dbh->prepare("EXEC ......"); 

$sth->execute(); 

while($result = $sth->fetch(PDO::FETCH_ASSOC)) { 
    print_r($result); 
} 

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

谢谢。

+0

[拨打PDO存储过程(https://phpdelusions.net/pdo#call) –

+0

只是去尝试出来,似乎没有任何工作。刚发现Firebird PDO驱动程序不支持nextRowset()。 –

+0

eek!那么这将是一个问题 –

回答

0

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

所以使用:

select * from your_procedure()