Statement on glibc/iconv Vulnerability

sqlsrv_fetch_object

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

sqlsrv_fetch_objectПолучает следующую строку данных в наборе результатов как объект

Описание

sqlsrv_fetch_object(
    resource $stmt,
    string $className = ?,
    array $ctorParams = ?,
    int $row = ?,
    int $offset = ?
): mixed

Извлекает следующую строку данных в наборе результатов как экземпляр указанного класса со свойствами, соответствующими именам полей строки и значениям, которые соответствуют значениям полей строки.

Список параметров

stmt

Ресурс оператора, возвращаемый sqlsrv_query() или sqlsrv_execute().

className

Имя класса для создания экземпляра. Если имя класса не указано, создаётся экземпляр stdClass.

ctorParams

Значения передаваемые конструктору указанного класса. Если конструктор указанного класса принимает параметры, необходимо предоставить массив ctorParams.

row

Строка, к которой нужно получить доступ. Параметр можно использовать только в том случае, если указанный оператор был подготовлен с помощью курсора с возможностью прокрутки. В этом случае этот параметр может принимать одно из следующих значений:

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

offset

Указывает строку, к которой будет осуществляться доступ, если для параметра строки установлено значение SQLSRV_SCROLL_ABSOLUTE или SQLSRV_SCROLL_RELATIVE. Обратите внимание, что первая строка в наборе результатов имеет индекс 0.

Возвращаемые значения

В случае успешного выполнения возвращает объект, null, если в наборе результатов больше нет строк и false в случае возникновения ошибки или если указанный класс не существует.

Примеры

Пример #1 Пример использования sqlsrv_fetch_object()

В следующем примере показано, как получить строку как объект stdClass.

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

$sql = "SELECT fName, lName FROM Table_1";
$stmt = sqlsrv_query( $conn, $sql);
if(
$stmt === false ) {
die(
print_r( sqlsrv_errors(), true));
}

// Получение каждой строки как объект.
// Поскольку класс не указан, каждая строка будет получена как объект stdClass.
// Имена свойств соответствуют именам полей.
while( $obj = sqlsrv_fetch_object( $stmt)) {
echo
$obj->fName.", ".$obj->lName."<br />";
}
?>

Примечания

Если имя класса указано с необязательным параметром $className и у класса есть свойства, имена которых совпадают с именами полей набора результатов, к свойствам применяются соответствующие значения набора результатов. Если имя поля набора результатов не соответствует свойству класса, свойство с именем поля набора результатов добавляется к объекту, а значение набора результатов применяется к свойству. При использовании параметра $className применяются следующие правила:

  • При сопоставлении имён свойств поля учитывается регистр.
  • Сопоставление свойств поля происходит независимо от модификаторов доступа.
  • Типы данных свойств класса игнорируются при применении значения поля к свойству.
  • Если класс не существует, функция возвращает false и добавляет ошибку в коллекцию ошибок.
Независимо от того, указан ли параметр $className, если возвращается поле без имени, значение поля будет проигнорировано, а в коллекцию ошибок будет добавлено предупреждение.

При использовании набора результатов, содержащего несколько столбцов с одинаковым именем, может быть лучше использовать sqlsrv_fetch_array() или комбинацию sqlsrv_fetch() и sqlsrv_get_field().

Смотрите также

  • sqlsrv_fetch() - Делает следующую строку в наборе результатов доступной для чтения
  • sqlsrv_fetch_array() - Возвращает строку как массив

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top