(No version information available, might only be in Git)
sqlsrv_fetch_object — Получает следующую строку данных в наборе результатов как объект
$stmt,$className = ?,$ctorParams = ?,$row = ?,$offset = ?Извлекает следующую строку данных в наборе результатов как экземпляр указанного класса со свойствами, соответствующими именам полей строки и значениям, которые соответствуют значениям полей строки.
stmtРесурс оператора, возвращаемый sqlsrv_query() или sqlsrv_execute().
classNameИмя класса для создания экземпляра. Если имя класса не указано, создаётся экземпляр stdClass.
ctorParamsЗначения передаваемые конструктору указанного класса. Если конструктор указанного класса принимает параметры, необходимо предоставить массив ctorParams.
rowСтрока, к которой нужно получить доступ. Параметр можно использовать только в том случае, если указанный оператор был подготовлен с помощью курсора с возможностью прокрутки. В этом случае этот параметр может принимать одно из следующих значений:
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 и добавляет ошибку в коллекцию ошибок.При использовании набора результатов, содержащего несколько столбцов с одинаковым именем, может быть лучше использовать sqlsrv_fetch_array() или комбинацию sqlsrv_fetch() и sqlsrv_get_field().