(No version information available, might only be in Git)
sqlsrv_fetch_object — Recupera a próxima linha de dados em um conjunto de resultados como um objeto
$stmt
,$className
= ?,$ctorParams
= ?,$row
= ?,$offset
= ?Recupera a próxima linha de dados em um conjunto de resultados como uma instância da classe especificada com propriedades que correspondem aos nomes dos campos da linha e valores que correspondem aos valores dos campos da linha.
stmt
Um recurso de declaração criado por sqlsrv_query() ou sqlsrv_execute().
className
O nome da classe a ser instanciada. Se nenhum nome de classe for especificado, stdClass é instanciado.
ctorParams
Valores passados para o construtor da classe especificada. Se o construtor da classe especificada aceitar parâmetros, o array ctorParams deve ser fornecido.
row
A linha a ser acessada. Este parâmetro só pode ser usado se a declaração especificada foi preparada com um cursor rolável. Nesse caso, esse parâmetro pode assumir um dos seguintes valores:
offset
Especifica a linha a ser acessada se o parâmetro row for definido como
SQLSRV_SCROLL_ABSOLUTE
ou
SQLSRV_SCROLL_RELATIVE
. Observe que a primeira linha em
um conjunto de resultados tem índice 0.
Retorna um objeto em caso de sucesso, null
se não houver mais linhas para retornar,
e false
se ocorrer um erro ou se a classe especificada não existir.
Exemplo #1 Exemplo de sqlsrv_fetch_object()
O exemplo a seguir demonstra como recuperar uma linha como um objeto 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));
}
// Recupera cada linha como um objeto.
// Como nenhum nome de classe é especificado, cada linha será recuperada como um objeto stdClass.
// Os nomes das propriedades correspondem aos nomes dos campos.
while( $obj = sqlsrv_fetch_object( $stmt)) {
echo $obj->fName.", ".$obj->lName."<br />";
}
?>
Se um nome de classe for especificado com o parâmetro opcional $className e a classe tiver propriedades cujos nomes correspondam aos nomes dos campos do conjunto de resultados, os valores do conjunto de resultados correspondentes são aplicados às propriedades. Se um nome de campo do conjunto de resultados não corresponder a uma propriedade da classe, uma propriedade com o nome do campo do conjunto de resultados é adicionada ao objeto e o valor do conjunto de resultados é aplicado à propriedade. As seguintes regras se aplicam ao usar o parâmetro $className:
false
e adiciona um erro à coleção de erros.Ao consumir um conjunto de resultados que tenha várias colunas com o mesmo nome, pode ser melhor usar sqlsrv_fetch_array() ou a combinação de sqlsrv_fetch() e sqlsrv_get_field().