Procédure : récupérer des données sous forme de tableau
Le Pilote SQL Server pour PHP offre la fonction sqlsrv_fetch_array qui permet de récupérer une ligne de données sous forme de tableau. Cette rubrique fournit deux exemples de récupération des données de ligne sous forme de tableau :
Le premier exemple montre comment utiliser sqlsrv_fetch_array pour récupérer une ligne de données sous forme de tableau indexé numériquement.
Le second exemple montre comment utiliser sqlsrv_fetch_array pour récupérer une ligne de données sous forme de tableau associatif.
Remarque : Par défaut, sqlsrv_fetch_array récupère un tableau avec des clés numériques et associatives.
Exemple
L'exemple suivant montre comment récupérer chaque ligne d'un jeu de résultats sous forme de tableau indexé numériquement.
L'exemple récupère à partir de la table Purchasing.PurchaseOrderDetail de la base de données AdventureWorks, des informations sur les produits dont la date est spécifiée et dont la quantité en stock (StockQty) est inférieure à une valeur déterminée.
L'exemple suppose que SQL Server et la base de données AdventureWorks sont installés sur l'ordinateur local. Toutes les données de sortie sont écrites dans la console lorsque l'exemple est exécuté à partir de la ligne de commande.
<?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 fonction sqlsrv_fetch_array retourne toujours les données selon les Types de données PHP par défaut. Pour plus d'informations sur la façon de spécifier le type de données PHP, consultez Procédure : spécifier les types de données PHP ou Procédure : récupérer un champ unique.
Si un champ sans nom est récupéré, la clé associative de l'élément de tableau est une chaîne vide (""). Pour plus d'informations, consultez sqlsrv_fetch_array.
L'exemple suivant récupère chaque ligne d'un jeu de résultats sous forme de tableau associatif. Les clés du tableau correspondent aux noms de colonnes du jeu de résultats.
L'exemple récupère à partir de la table Purchasing.PurchaseOrderDetail de la base de données AdventureWorks des informations sur les produits dont la quantité en stock (StockQty) est inférieure à une valeur déterminée et dont la date d'échéance (DueDate) est spécifiée.
L'exemple suppose que SQL Server et la base de données AdventureWorks sont installés sur l'ordinateur local. Toutes les données de sortie sont écrites dans la console lorsque l'exemple est exécuté à partir de la ligne de commande.
<?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 fonction sqlsrv_fetch_array retourne toujours les données selon les Types de données PHP par défaut. Pour plus d'informations sur la façon de spécifier le type de données PHP, consultez Procédure : spécifier les types de données PHP ou Procédure : récupérer un champ unique.
Voir aussi
Concepts
Comparaison des fonctions de récupération des données
À propos des exemples de code dans la documentation