2016-10-26 30 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()