0

私は PDO を使用して MSSQL ストアド プロシージャを頻繁に実行していますが、ストア プロシージャが正しく実行されないという問題に遭遇することがあります。

現在、一時テーブルへのさまざまな挿入とネストされたループ ステートメントを含むかなり複雑なストアド プロシージャがあります。SQL Manager からストアド プロシージャを実行すると、正常に動作します。実行には約 1.5 分かかりますが、問題なく完了します。

問題は、次のように PHP から実行する場合です。

$q = $dbh->prepare('exec sp_mysp');
$q->execute();

を確認しました$q->errorInfo();が、エラーはありませんが、手順は完了しません。ストアド プロシージャのネストされたループの途中でダンプしているようです。

ストアド プロシージャが PDO を使用して PHP から呼び出されたときに実行できる操作に制限はありますか? また、私が立ち往生しているため、これをデバッグする良い方法はありますか?

これに関するどんな助けも素晴らしいでしょう。

ありがとう!

4

1 に答える 1

0

Stored Proc が SQL 管理スタジオを介して正常に実行されたのと同じ問題がありましたが、PDO を使用して PHP を介して EXECUTE を呼び出したときはそうではありませんでした。私はパラメータなどを渡していませんでした。

何らかの理由で、一時テーブルに値を挿入していたという事実がありました-一時テーブルを実際のテーブルに置き換えるとすぐに、ストアドプロシージャが正常に実行されました。

于 2017-02-06T13:38:17.060 に答える