行を配列として返す

# sqlsrv_fetch_array

(No version information available, might only be in Git)

sqlsrv_fetch_array — 行を配列として返す

### 説明

function sqlsrv_fetch_array(
resource `$stmt`,
int `$fetchType` = ?,
int `$row` = ?,
int `$offset` = ?
): array

クエリ結果から列データを順に返します。列データの型は連想配列、配列、またはその両方(デフォルト)を選択できます。

### パラメータ

`stmt`
  sqlsrv_query あるいは sqlsrv_prepare が返すステートメントリソース。
`fetchType`
  戻り値の型を指定します。連想配列`SQLSRV_FETCH_ASSOC`, 配列`SQLSRV_FETCH_NUMERIC`, and 連想配列と配列の両方`SQLSRV_FETCH_BOTH` (デフォルト) のうち1つを指定します。 SQLSRV_FETCH_ASSOC(連想配列)は同じ名前の列が複数存在する結果セットを扱う際に使ってはいけません(連想配列のキーが重複するため)。
`row`
  スクロール可能なカーソルを用いた結果セットから、取得する列を指定します。 定義済み定数は、 `SQLSRV_SCROLL_NEXT`(次の列), `SQLSRV_SCROLL_PRIOR`(前の列), `SQLSRV_SCROLL_FIRST`(最初の列), `SQLSRV_SCROLL_LAST`(最後の列), `SQLSRV_SCROLL_ABSOLUTE`(列番号の絶対指定) and, `SQLSRV_SCROLL_RELATIVE`(列番号の相対指定) (デフォルト値). この引数を指定する場合は、`fetchType` を指定しなくてはなりません。
`offset`
  引数rowに `SQLSRV_SCROLL_ABSOLUTE` または `SQLSRV_SCROLL_RELATIVE` を指定する際に、この引数で取得する列を指定します。 列番号は0から始まります。

### 戻り値

成功時に配列を返します。 返す列がない場合は`null` を返します。エラーが起きた場合は `false`を返します。

### 例

例1 連想配列を扱う場合の例

    <?php
    $serverName = "serverName\instanceName";
    $connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
    $conn = sqlsrv_connect( $serverName, $connectionInfo );
    if( $conn === false ) {
        die( print_r( sqlsrv_errors(), true));
    }

    $sql = "SELECT FirstName, LastName FROM SomeTable";
    $stmt = sqlsrv_query( $conn, $sql );
    if( $stmt === false) {
        die( print_r( sqlsrv_errors(), true) );
    }

    while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
          echo $row['LastName'].", ".$row['FirstName']."<br />";
    }

    sqlsrv_free_stmt( $stmt);
    ?>

例2 配列を扱う場合の例

    <?php
    $serverName = "serverName\instanceName";
    $connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
    $conn = sqlsrv_connect( $serverName, $connectionInfo );
    if( $conn === false ) {
        die( print_r( sqlsrv_errors(), true));
    }

    $sql = "SELECT FirstName, LastName FROM SomeTable";
    $stmt = sqlsrv_query( $conn, $sql );
    if( $stmt === false) {
        die( print_r( sqlsrv_errors(), true) );
    }

    while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {
          echo $row[0].", ".$row[1]."<br />";
    }

    sqlsrv_free_stmt( $stmt);
    ?>

### 注意

上の例で `fetchType` の指定を省略したり、定数 `SQLSRV_FETCH_TYPE` を明示的に指定した場合は、 連想配列と数値添字の両方のキーを含む配列を返します。

同じ名前のカラムが複数存在する場合は、最後に現れたカラムがそれまでのすべてを上書きします。 名前の衝突を回避するには、別名を指定しましょう。

無名のカラムが返された場合、連想配列のキーは空文字列("")になります。

### 参考

- sqlsrv_connect() - Opens a connection to a Microsoft SQL Server database
- sqlsrv_query() - Prepares and executes a query
- sqlsrv_errors() - Returns error and warning information about the last SQLSRV operation performed
- sqlsrv_fetch() - Makes the next row in a result set available for reading

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open