Compartir a través de


Cómo recuperar datos como una matriz

El Controlador de SQL Server para PHP para PHP proporciona la función sqlsrv_fetch_array para recuperar una fila de datos como una matriz. En este tema se proporcionan dos ejemplos para recuperar datos de fila como una matriz:

  • En el primer ejemplo se examina cómo usar sqlsrv_fetch_array para recuperar una fila de datos como una matriz indizada numéricamente.

  • En el segundo ejemplo se examina cómo usar sqlsrv_fetch_array para recuperar una fila de datos como una matriz asociativa.

    Nota

    De forma predeterminada, sqlsrv_fetch_array devuelve una matriz con ambas claves, numérica y asociativa.

Ejemplo

En el siguiente ejemplo se recupera cada fila de un conjunto de resultados como una matriz indizada numéricamente.

En el ejemplo se recupera información del producto de la tabla Purchasing.PurchaseOrderDetail de la base de datos AdventureWorks de los productos que tienen una fecha especificada y menos existencias que el valor especificado (StockQty).

En el ejemplo se supone que SQL Server y la base de datos AdventureWorks están instalados en el equipo local. Todos los resultados se escriben en la consola cuando el ejemplo se ejecuta desde la línea de comandos.

<?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));
}

/* Define the query. */
$tsql = "SELECT ProductID,
                UnitPrice,
                StockedQty 
         FROM Purchasing.PurchaseOrderDetail
         WHERE StockedQty < 3 
         AND DueDate='2002-01-29'";

/* Execute the query. */
$stmt = sqlsrv_query( $conn, $tsql);
if ( $stmt )
{
     echo "Statement executed.\n";
} 
else 
{
     echo "Error in statement execution.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Iterate through the result set printing a row of data upon each
iteration.*/
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC))
{
     echo "ProdID: ".$row[0]."\n";
     echo "UnitPrice: ".$row[1]."\n";
     echo "StockedQty: ".$row[2]."\n";
     echo "-----------------\n";
}

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

La función sqlsrv_fetch_array siempre devuelve datos según los Tipos de datos predeterminados de PHP. Para obtener información acerca de cómo especificar el tipo de datos de PHP, vea Cómo especificar tipos de datos de PHP o Cómo recuperar un campo único.

Si se recupera un campo sin nombre, la clave asociativa del elemento de la matriz será una cadena vacía (""). Para obtener más información, vea sqlsrv_fetch_array.

En el siguiente ejemplo se recupera cada fila de un conjunto de resultados como una matriz asociativa. Las claves de la matriz corresponden a nombres de columna del conjunto de resultados.

En el ejemplo se recupera información del producto de la tabla Purchasing.PurchaseOrderDetail de la base de datos AdventureWorks de los productos que tienen menos existencias que el valor especificado (StockQty) y una fecha de vencimiento especificada (DueDate).

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));
}

/* Define the query. */
$tsql = "SELECT ProductID,
                UnitPrice,
                StockedQty 
         FROM Purchasing.PurchaseOrderDetail
         WHERE StockedQty < 3
         AND DueDate='2002-01-29'";

/* Execute the query. */
$stmt = sqlsrv_query( $conn, $tsql);
if ( $stmt )
{
     echo "Statement executed.\n";
} 
else 
{
     echo "Error in statement execution.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Iterate through the result set printing a row of data upon each
 iteration. Note that the returned array is an associative array with
 keys corresponding to column names of the result set. */
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
{
     echo "ProdID: ".$row['ProductID']."\n";
     echo "UnitPrice: ".$row['UnitPrice']."\n";
     echo "StockedQty: ".$row['StockedQty']."\n";
     echo "-----------------\n";
}

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

La función sqlsrv_fetch_array siempre devuelve datos según los Tipos de datos predeterminados de PHP. Para obtener información acerca de cómo especificar el tipo de datos de PHP, vea Cómo especificar tipos de datos de PHP o Cómo recuperar un campo único.

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
Guía de programación