(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().