3

PHP ODBC ライブラリを使用して MSSQL 2008 サーバー ( http://php.net/manual/en/ref.uodbc.php ) に接続しています。

私のストアド プロシージャの中には、レコード セットを返さないものがあります (たとえば、単に挿入または更新を行うだけです)。このような状況では、出力を適切に処理できるようにしたいと考えています。データベース呼び出しが行われた後、出力は配列に挿入され、処理のためにアプリケーションに返されます。コードの主要部分は次のとおりです (エラー処理などを除く)。

$sql_result = odbc_exec($connection, $sql);
while ($row = odbc_fetch_array($sql_result)) {
    $resultArray[$i] = $row;
    $i++;
}

が正常$sql_resultに実行されたが、レコード セットが含まれていない場合 (挿入または更新に続く場合)、次のodbc_fetch_array警告がトリガーされます。

警告: odbc_fetch_row(): この結果インデックスで使用できるタプルはありません

理想的には、空のレコード セットが含まれているかどうかを最初にテストしたいと思い$sql_resultますが、私が試した明らかな試みはすべて、常に同じ警告メッセージにつながります。

$sql_resultが空かどうかを確認するきちんとした方法を知っている人はいますか?

4

1 に答える 1

1

PHP odbc API を使用する簡単な方法はないと思います。通常、SELECT などの値を返すステートメントとそうでない UPDATE などのステートメントを処理するには、さまざまな関数を使用します。

これが任意のステートメントを実行するユーティリティである場合、ステートメントを解析できます。

これは空の結果セットではなく、まったく結果セットでもありません。デバッガーで結果を調べるか、var_dump を使用して違いを確認できる場合があります。

于 2013-01-08T13:17:49.650 に答える