(No hay información de versión disponible, podría estar únicamente en SVN)
sqlsrv_fetch_object — Devuelve la siguiente fila de datos de un conjunto resultado como un objeto
$stmt
[, string $className
[, array $ctorParams
[, int $row
[, int $offset
]]]] )Devuelve la siguiente fila de datos de un conjunto resultado como una instancia de la clase especificada, donde las propiedades correspondientes a los nombres de los campos de la fila recuperada y los valores, se corresponden con los valores de la fila recuperada.
stmt
Un recurso de consulta creado por sqlsrv_query() o sqlsrv_execute().
className
El nombre de la clase a instanciar. Si no se especifica el nombre de la clase, se instanciará la clase stdClass.
ctorParams
Los valores pasados al constructor de la clase especificada. Si el constructor de la clase especificada tiene parámetros, se proporcionará el array ctorParams.
row
La fila a la que se accederá. Este parámetro únicamente puede utilizarse si la consulta especificada se preparó con un cursor con scroll. En ese caso, este parámetro puede tomar uno de los siguientes valores:
offset
Especifica la fila a la que se accederá si el parámetro de fila se ha especificado como
SQLSRV_SCROLL_ABSOLUTE
o
SQLSRV_SCROLL_RELATIVE
. Notar que la primera fila en un
conjunto de resultado tiene el índice 0.
Devuelve un objeto en caso de éxito, NULL
si no hay más filas a devolver,
y FALSE
si se produce un error o si la clase especificada no existe.
Ejemplo #1 Ejemplo con sqlsrv_fetch_object()
El siguiente ejemplo demuestra cómo devolver una columna como un 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));
}
// Devolver cada fila como un objeto.
// Puesto que no se especifica ninguna clase, cada fila devolverá un objeto stdClass.
// Los nombres de propiedades corresponden a nombres de campo.
while( $obj = sqlsrv_fetch_object( $stmt)) {
echo $obj->fName.", ".$obj->lName."<br />";
}
?>
Si se especifica un nombre de clase con el parámetro opcional $className y la clase tiene propiedades cuyos nombres coinciden con los nombres de campos del conjunto de resultado, los valores correspondientes del conjunto de resultado se aplicarán a las propiedades. Si un nombre de campo del conjunto resultado no coincide con ninguna propiedad de clase, una propiedad con el nombre de campo se añadirá al objeto del conjunto resultado y el valor del resultado se aplicará a la propiedad. Se aplican las reglas siguientes cuando se utiliza el parámetro $className:
FALSE
y añade un error a la colección de errores.Cuando se trate un conjunto de resultado que tenga varias columnas con el mismo nombre, podría ser mejor utilizar sqlsrv_fetch_array() o la combinación de sqlsrv_fetch() y sqlsrv_get_field().