sqlsrv_fetch_array

Récupère la ligne de données suivante sous forme d'array.

Syntaxe

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

Paramètres

$stmt : ressource d'instruction correspondant à une instruction exécutée.

$fetchType[OPTIONNEL] : constante prédéfinie. Ce paramètre peut prendre l'une des valeurs répertoriées dans le tableau suivant :

Valeur Description

SQLSRV_FETCH_NUMERIC

La ligne de données suivante est retournée sous forme de tableau numérique.

SQLSRV_FETCH_ASSOC

La ligne de données suivante est retournée sous forme de tableau associatif. Les clés du tableau correspondent aux noms de colonnes dans le jeu de résultats.

SQLSRV_FETCH_BOTH

La ligne de données suivante est retournée sous forme d'un tableau numérique et d'un tableau associatif. Il s'agit de la valeur par défaut.

row [OPTIONNEL] : nouveauté de la version 1.1. Une des valeurs ci-dessous, indiquant la ligne à laquelle accéder dans un jeu de résultats utilisant un curseur à défilement variable. (Lorsque row est spécifié, fetchtype doit être explicitement spécifié, même si vous indiquez la valeur par défaut.)

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

Pour plus d'informations sur ces valeurs, consultez Spécification d'un type de curseur et sélection de lignes. La prise en charge du curseur à défilement variable est une nouveauté de la version 1.1 du Pilote SQL Server pour PHP.

offset [OPTIONNEL] : utilisé avec SQLSRV_SCROLL_ABSOLUTE et SQLSRV_SCROLL_RELATIVE pour spécifier la ligne à récupérer. Le premier enregistrement du jeu de résultats est 0.

Valeur de retour

Lorsqu'une ligne de données est récupérée, un array est retourné. S'il n'y a plus de lignes à récupérer, la valeur null est retournée. Si une erreur se produit, la valeur false est retournée.

Selon la valeur du paramètre $fetchType, l'array retourné peut être un array indexé numériquement, un array associatif ou les deux. Par défaut, un array avec des clés numériques et associatives est retourné. Le type de données d'une valeur dans le tableau retourné représente le type de données PHP par défaut. Pour plus d'informations sur les types de données PHP par défaut, consultez Types de données PHP par défaut.

Notes

Si une colonne sans nom est retournée, la clé associative de l'élément de tableau est une chaîne vide (""). Par exemple, l'instruction Transact-SQL suivante insère une valeur dans la table de base de données et récupère la clé primaire générée par le serveur :

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

SELECT SCOPE_IDENTITY()

Si le jeu de résultats retourné par la partie SELECT SCOPE_IDENTITY() de cette instruction est récupéré sous forme de tableau associatif, la clé de la valeur retournée est une chaîne vide (""), car la colonne retournée n'a pas de nom. Pour éviter cela, vous pouvez récupérer le résultat sous forme de tableau numérique, ou spécifier un nom pour la colonne retournée directement dans l'instruction Transact-SQL. L'exemple suivant montre une méthode pour spécifier un nom de colonne dans une instruction Transact-SQL :

SELECT SCOPE_IDENTITY() AS PictureID

Si un jeu de résultats contient plusieurs colonnes sans nom, la valeur de la dernière de ces colonnes est attribuée à la clé de chaîne vide ("").

Exemple

L'exemple suivant récupère chaque ligne d'un jeu de résultats sous forme d'array associatif. 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));
}

/* 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);
?>

Voir aussi

Concepts

Comparaison des fonctions de récupération des données
À propos des exemples de code dans la documentation

Autres ressources

Référence de l'API (Pilote SQL Server pour PHP)
Récupération des données