(No version information available, might only be in SVN)
sqlsrv_fetch_object — Récupère la prochaine ligne de données du jeu de résultats sous la forme d'un objet
$stmt
[, string $className
[, array $ctorParams
[, int $row
[, int $offset
]]]] )Récupère la prochaine ligne de données du jeu de résultats sous la forme d'une instance de la classe spécifiée dont les propriétés correspondent aux noms des champs de la ligne récupérée et les valeurs correspondant aux valeurs des champs de la ligne récupérée.
stmt
Une ressource de requête créée par la fonction sqlsrv_query() ou la fonction sqlsrv_execute().
className
Le nom de la classe à instancier. Si aucun nom de classe n'est spécifié, stdClass sera instanciée.
ctorParams
Valeurs à passer au constructeur de la classe spécifiée. Si le constructeur de la classe spécifiée prend des paramètres, le tableau ctorParams doit être fourni.
row
La ligne à traiter. Ce paramètre ne peut être utilisé que si la requête spécifié a été préparée avec un curseur scrollable. Dans ce cas, ce paramètre peut prend un des valeurs suivantes :
offset
Spécifie la ligne à traiter si le paramètre row est défini à
la valeur SQLSRV_SCROLL_ABSOLUTE
ou
SQLSRV_SCROLL_RELATIVE
.
Notez que la première ligne du jeu de résultats a un index de 0.
Retourne un objet en cas de succès, NULL
s'il n'y a plus de ligne à
retourner, et FALSE
si une erreur survient ou si la classe spécifiée
n'existe pas.
Exemple #1 Exemple avec sqlsrv_fetch_object()
L'exemple suivant montre la façon pour récupérer une ligne sous la forme d'un objet 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));
}
// Récupère chaque ligne sous la forme d'un objet
// Vu qu'aucune classe n'est spécifiée, chaque ligne sera récupéré sous la forme d'un objet stdClass.
// Les noms des propriétés correspondent aux noms des champs.
while( $obj = sqlsrv_fetch_object( $stmt)) {
echo $obj->fName.", ".$obj->lName."<br />";
}
?>
Si un nom de classe est spécifié avec le paramètre optionnel $className et la classe a des propriétés dont les noms correspondent à des noms de champs du jeu de résultats, les valeurs correspondantes du jeu de résultats seront appliquées à ces propriétés. Si un nom de champs du jeu de résultats ne correspond pas à une proriété de la classe, une propriété dont le nom correspond au nom du champs sera ajoutée à l'objet et la valeur correspondante dans le jeu de résultats sera appliquée à cette propriété. La règle suivante s'applique lors de l'utilisation du paramètre $className :
FALSE
et ajoute une erreur dans la collection
des erreurs.Lors du traitement d'un jeu de résultats qui possède plusieurs colonnes portant le même nom, il peut être plus judicieux d'utiliser la fonction sqlsrv_fetch_array() ou une combinaison des fonctions sqlsrv_fetch() et sqlsrv_get_field().