Microsoft 3.0 ドライバーで PHP 5.4 を使用して、SQL サーバー 2008 でストアド プロシージャを実行します。更新を行っているだけで結果を返さないプロシージャを実行するまでは正常に動作します。私が得るエラーメッセージは次のとおりです。
SQLSTATE[IMSSP]: The active result for the query contains no fields.
機能しない手順は、次の単純なコードに要約されます。
CREATE PROCEDURE [dbo].[sp_communication_increase_trials]
@comId bigint = NULL
AS
BEGIN
SET NOCOUNT ON
IF NOT @comId IS NULL
BEGIN
UPDATE Communication SET CommunicationTrials = CommunicationTrials + 1 WHERE id = @comId;
END;
END
fetchAll
上記の手順を実行するときのメソッドでの PHP コード barfs :
if ($stmt->execute()) {
do {
$rowset = $stmt->fetchAll(PDO::FETCH_ASSOC);
if ($rowset) {
$results[] = $rowset;
}
} while ($stmt->nextRowset());
}
return $results;
ただし、プロシージャの update-statement の後に単純な select を追加すると機能しますが、これは必須ではありません。