(No version information available, might only be in Git)
sqlsrv_fetch_array — Возвращает строку как массив
$stmt
,$fetchType
= ?,$row
= ?,$offset
= ?Возвращает следующую доступную строку данных в виде ассоциативного массива, числового массива или и того и другого (по умолчанию).
stmt
Ресурс оператора, возвращаемый sqlsrv_query или sqlsrv_prepare.
fetchType
Предопределённая константа, указывающая тип возвращаемого массива.
Возможные значения: SQLSRV_FETCH_ASSOC
,
SQLSRV_FETCH_NUMERIC
или
SQLSRV_FETCH_BOTH
(по умолчанию).
Тип выборки SQLSRV_FETCH_ASSOC не следует использовать при использовании набора результатов с несколькими столбцами с одинаковым именем.
row
Задаёт строку для доступа в результирующем наборе, в котором используется прокручиваемый курсор.
Возможные значения: SQLSRV_SCROLL_NEXT
,
SQLSRV_SCROLL_PRIOR
, SQLSRV_SCROLL_FIRST
,
SQLSRV_SCROLL_LAST
, SQLSRV_SCROLL_ABSOLUTE
и
SQLSRV_SCROLL_RELATIVE
(по умолчанию).
Если этот параметр указан, fetchType
должен быть явно определён.
offset
Указывает строку, к которой будет осуществляться доступ, если для параметра строки установлено
значение 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
в приведённых выше примерах вернёт массив, у которого ключи будут как ассоциативные, так и числовые.
Если более одного столбца возвращается с одним и тем же именем, последний столбец будет иметь приоритет. Чтобы избежать конфликтов имён полей, используйте псевдонимы.
Если возвращается столбец без имени, ассоциативный ключ для элемента массива будет пустой строкой ("").