Compartir a través de


sqlsrv_fetch

Hace que la fila siguiente de un conjunto de resultados esté disponible para su lectura. Use sqlsrv_get_field para leer campos de la fila.

Sintaxis

sqlsrv_fetch( resource $stmt[, row[, ]offset])

Parámetros

$stmt: un recurso de instrucción correspondiente a una instrucción ejecutada.

Nota

Una instrucción se debe ejecutar antes de que se pueden recuperar los resultados. Para obtener información acerca de la ejecución de una instrucción, vea sqlsrv_query y sqlsrv_execute.

row [OPCIONAL]: se ha agregado en la versión 1.1. Uno de los valores siguientes, que especifica a qué fila se debe tener acceso en un conjunto de resultados que usa un cursor desplazable.

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

Para obtener más información acerca de estos valores, vea Especificar un tipo de cursor y seleccionar filas. La compatibilidad con cursores desplazables se ha agregado en la versión 1.1 del Controlador de SQL Server para PHP.

offset [OPCIONAL]: se usa con SQLSRV_SCROLL_ABSOLUTE y SQLSRV_SCROLL_RELATIVE para especificar la fila que se debe recuperar. El primer registro del conjunto de resultados es 0.

Valor devuelto

Si la fila siguiente del conjunto de resultados se recuperó correctamente, se devuelve true. Si no hay más resultados en el conjunto de resultados, se devuelve null. Si se produjo un error, se devuelve false.

Ejemplo

En el siguiente ejemplo se usa sqlsrv_fetch para recuperar una fila de datos que contiene una revisión del producto y el nombre del revisor. Para recuperar datos del conjunto de resultados, se usa sqlsrv_get_field. En el ejemplo se supone que SQL Server y la base de datos AdventureWorks están instalados en el equipo local. Cuando se ejecuta el ejemplo desde la línea de comandos, todos los resultados se escriben en la consola.

<?php
/*Connect to the local server using Windows Authentication and
specify the AdventureWorks database as the database in use. */
$serverName = "(local)";
$connectionInfo = array( "Database"=>"AdventureWorks");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
     echo "Could not connect.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Set up and execute the query. Note that both ReviewerName and
Comments are of SQL Server type nvarchar. */
$tsql = "SELECT ReviewerName, Comments 
         FROM Production.ProductReview
         WHERE ProductReviewID=1";
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false )
{
     echo "Error in statement preparation/execution.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Make the first row of the result set available for reading. */
if( sqlsrv_fetch( $stmt ) === false)
{
     echo "Error in retrieving row.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Note: Fields must be accessed in order.
Get the first field of the row. Note that no return type is
specified. Data will be returned as a string, the default for
a field of type nvarchar.*/
$name = sqlsrv_get_field( $stmt, 0);
echo "$name: ";

/*Get the second field of the row as a stream.
Because the default return type for a nvarchar field is a
string, the return type must be specified as a stream. */
$stream = sqlsrv_get_field( $stmt, 1, 
                            SQLSRV_PHPTYPE_STREAM( SQLSRV_ENC_CHAR));
while( !feof( $stream ))
{ 
    $str = fread( $stream, 10000);
    echo $str;
}

/* Free the statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>

Vea también

Conceptos

Comparar las funciones de recuperación de datos
Acerca de ejemplos de código en la documentación

Otros recursos

Recuperar datos
Referencia de la API (Controlador SQL Server para PHP)