sqlsrv_fetch_array
(No version information available, might only be in Git)
sqlsrv_fetch_array — Возвращает строку как массив
Описание
sqlsrv_fetch_array(
resource $stmt
,
int $fetchType
= ?,
int $row
= ?,
int $offset
= ?
): array
Список параметров
-
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
в приведённых выше примерах вернёт массив, у которого ключи будут как ассоциативные, так и числовые.
Если более одного столбца возвращается с одним и тем же именем, последний столбец будет иметь приоритет.
Чтобы избежать конфликтов имён полей, используйте псевдонимы.
Если возвращается столбец без имени, ассоциативный ключ для элемента массива будет пустой строкой ("").
Смотрите также
- sqlsrv_connect() - Открывает соединение с базой данных Microsoft SQL Server
- sqlsrv_query() - Подготавливает и выполняет запрос
- sqlsrv_errors() - Возвращает информацию об ошибке и предупреждении последней выполненной операции SQLSRV
- sqlsrv_fetch() - Делает следующую строку в наборе результатов доступной для чтения