sqlsrv_execute
sqlsrv_fetch_object
SQLSRV Functions
PHP Manual

# sqlsrv_fetch_array

Returns a row as an array

### Description

array sqlsrv_fetch_array ( resource `$stmt` [, int `$fetchType` [, int `$row` [, int `$offset` ]]] )

Returns the next available row of data as an associative array, a numeric array, or both (the default).

### Parameters

`stmt`

  A statement resource returned by sqlsrv_query or sqlsrv_prepare.

`fetchType`

  A predefined constant specifying the type of array to return. Possible values are `SQLSRV_FETCH_ASSOC`, `SQLSRV_FETCH_NUMERIC`, and `SQLSRV_FETCH_BOTH` (the default).

  A fetch type of SQLSRV_FETCH_ASSOC should not be used when consuming a result set with multiple columns of the same name.

`row`

  Specifies the row to access in a result set that uses a scrollable cursor. Possible values are `SQLSRV_SCROLL_NEXT`, `SQLSRV_SCROLL_PRIOR`, `SQLSRV_SCROLL_FIRST`, `SQLSRV_SCROLL_LAST`, `SQLSRV_SCROLL_ABSOLUTE` and, `SQLSRV_SCROLL_RELATIVE` (the default). When this parameter is specified, the `fetchType` must be explicitly defined.

`offset`

  Specifies the row to be accessed if the row parameter is set to `SQLSRV_SCROLL_ABSOLUTE` or `SQLSRV_SCROLL_RELATIVE`. Note that the first row in a result set has index 0.

### Return Values

Returns an array on success, `NULL` if there are no more rows to return, and `FALSE` if an error occurs.

### Examples

Example #1 Retrieving an associative array.

`<?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);
?>`

Example #2 Retrieving a numeric array.

`<?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);
?>`

### Notes

Not specifying the `fetchType` or explicity using the `SQLSRV_FETCH_TYPE` constant in the examples above will return an array that has both associative and numeric keys.

If more than one column is returned with the same name, the last column will take precedence. To avoid field name collisions, use aliases.

If a column with no name is returned, the associative key for the array element will be an empty string ("").

### See Also

- sqlsrv_connect
- sqlsrv_query
- sqlsrv_errors
- sqlsrv_fetch