0

ストア プロシージャを実行する PHP スクリプトがあります。ここまでは順調ですね。これで、ストア プロシージャ内で 2 つのクエリを実行するストア プロシージャが作成されました。

EXEC ('Delete From [DB].dbo.[Table]')
EXEC ('INSERT INTO [DB].dbo.[Table] ([Col])VALUES(1)')

PHPでSPを呼び出すと、テーブルの内容が削除されるだけで、最初の行は挿入されません。(最初の Exec だけが実行されるようです) 次のように PHP で SP を呼び出します。

$stmt = sqlsrv_query($connection, "EXEC my_sp" );
...
while( $row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC) ) {
...
}

現時点では、リターンは私にとってそれほど重要ではありません。なぜ最初のクエリだけが実行されるのか疑問に思っています。データベースで SP を直接呼び出すと、クエリは期待どおりに実行されます。エラーメッセージなどはありません。1回のphp呼び出しでSPと「exec」の両方を実行する方法を知っている人はいますか?

手伝ってくれてありがとう!Ⅴ

4

1 に答える 1

0

SP で EXEC ('Delete From [DB].dbo.[Table]') を記述する必要はないと思います。EXEC() を無視します。Delete From [DB].dbo.[Table] のように書くだけです。

于 2014-07-25T06:49:58.310 に答える