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