sqlsrv_fetch_array

Recupera la fila siguiente de datos como una array.

Sintaxis

sqlsrv_fetch_array( resource $stmt[, int $fetchType [, row[, ]offset]])

Parámetros

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

$fetchType [OPCIONAL]: una constante predefinida. Este parámetro puede tomar uno de los valores enumerados en la tabla siguiente:

Valor Descripción

SQLSRV_FETCH_NUMERIC

La siguiente fila de datos se devuelve como una matriz numérica.

SQLSRV_FETCH_ASSOC

La siguiente fila de datos se devuelve como una matriz asociativa. Las claves de matriz son los nombres de columna en el conjunto de resultados.

SQLSRV_FETCH_BOTH

La siguiente fila de datos se devuelve como una matriz numérica y una matriz asociativa. Éste es el valor predeterminado.

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. (Si se especifica row, fetchtype se debe especificar de forma explícita, aunque se especifique el valor predeterminado.)

  • 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 se recupera una fila de datos, se devuelve una array. Si no hay más filas para recuperar, se devuelve null. Si se produce un error, se devuelve false.

A partir del valor del parámetro $fetchType, la array devuelta puede ser una array indizada numéricamente, una array asociativa o ambas. De forma predeterminada, se devuelve una array con ambas claves, numérica y asociativa. El tipo de datos de un valor de la matriz devuelta será el tipo de datos predeterminado de PHP. Para obtener información acerca de los tipos de datos predeterminados de PHP, vea Tipos de datos predeterminados de PHP.

Notas

Si se devuelve una columna sin nombre, la clave asociativa del elemento de la matriz será una cadena vacía (""). Por ejemplo, considere que esta instrucción de Transact-SQL inserta un valor en una tabla de la base de datos y recupera la clave principal generada por el servidor:

INSERT INTO Production.ProductPhoto (LargePhoto) VALUES (?);

SELECT SCOPE_IDENTITY()

Si el conjunto de resultados devueltos por la parte SELECT SCOPE_IDENTITY() de esta instrucción se recupera como una matriz asociativa, la clave del valor devuelto será una cadena vacía ("") porque la columna devuelta no tiene nombre. Para evitar esto, puede recuperar el resultado como una matriz numérica o especificar el nombre de la columna devuelta en la instrucción de Transact-SQL. A continuación, se muestra una forma de especificar un nombre de columna en Transact-SQL:

SELECT SCOPE_IDENTITY() AS PictureID

Si un conjunto de resultados contiene varias columnas sin nombre, el valor de la última columna sin nombre se asignará en la clave de cadena vacía ("").

Ejemplo

En el siguiente ejemplo se recupera cada fila de un conjunto de resultados como una array asociativa. 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. */
$tsql = "SELECT FirstName, LastName
         FROM Person.Contact
         WHERE LastName='Alan'";
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false)
{
     echo "Error in query preparation/execution.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Retrieve each row as an associative array and display the results.*/
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
{
      echo $row['LastName'].", ".$row['FirstName']."\n";
}

/* Free 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

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