1

mssql ストアド プロシージャを使用するために php を使用しています。コードは他のストアド プロシージャと連携しますが、このコードから何かを返そうとすると、選択した値ではなく bool(false) が返されます。

    $para = array(array($this->Forename), array($this->Surname), );  
    $result = mssqldb::query("{call usp_NewCustToOrderRemote(?,?)}", $para);  
    $userid = sqlsrv_fetch_array($result);  var_dump($userid);

ストアド プロシージャは基本的にパラメータを挿入し、新しい行 ID を選択します。

    set     @newID = @@IDENTITY
    select @newID

ストアド プロシージャを制御できないため、戻り値を追加できません。管理ツールでストアド プロシージャを実行すると問題なく動作し、php で実行すると行が作成されます。私のdbコネクタクラスはmssqlを使用していませんが、sqlsrvの名前が間違っています。本当に明らかな何かが欠けていますか?

4

1 に答える 1

0

ストアド プロシージャが行を更新してから 'select' を返したので、最初の結果が更新された行だったので、次の結果に移動する必要がありました。

    sqlsrv_next_result($result);
    $id = sqlsrv_fetch_array($result)[0];

検証も追加しました:)

于 2012-10-01T19:38:25.987 に答える