2016-10-26 8 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

はちょうどそれを試してみたし、どちらか動作していないようでした。ただ、nextRowset()がFirebird PDOドライバでサポートされていないことが分かりました。 –

+0

eek!それから問題になるだろう –

答えて

0

Firebirdストアドプロシージャから複数の行が必要な場合は、実行する代わりにをにする必要があります。 IIRCはあなたがあなたの質問で言っていることに反して、それを実行するときだけ最初の結果を得るだろうが。

ので使用:

select * from your_procedure() 
関連する問題