Partager via


sqlsrv_fetch

Rend la ligne suivante d'un jeu de résultats disponible pour la lecture. Utilisez sqlsrv_get_field pour lire les champs de la ligne.

Syntaxe

sqlsrv_fetch( resource $stmt[, row[, ]offset])

Paramètres

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

Cc296187.note(fr-fr,SQL.90).gifRemarque :
Une instruction doit être exécutée avant de pouvoir récupérer les résultats. Pour plus d'informations sur l'exécution d'une instruction, consultez sqlsrv_query et sqlsrv_execute.

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 :

  • 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

Si la prochaine ligne du jeu de résultats a été récupérée avec succès, la valeur true est retournée. S'il n'y a plus de résultats dans le jeu de résultats, la valeur null est retournée. Si une erreur s'est produite, la valeur false est retournée.

Exemple

L'exemple suivant montre comment utiliser sqlsrv_fetch pour récupérer une ligne de données contenant un comparatif de produit et l'auteur du comparatif. Pour récupérer les données du jeu de résultats, sqlsrv_get_field est utilisé. 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. Note that both ReviewerName and
Comments are of SQL Server type nvarchar. */
$tsql = "SELECT ReviewerName, Comments 
         FROM Production.ProductReview
         WHERE ProductReviewID=1";
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false )
{
     echo "Error in statement preparation/execution.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Make the first row of the result set available for reading. */
if( sqlsrv_fetch( $stmt ) === false)
{
     echo "Error in retrieving row.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Note: Fields must be accessed in order.
Get the first field of the row. Note that no return type is
specified. Data will be returned as a string, the default for
a field of type nvarchar.*/
$name = sqlsrv_get_field( $stmt, 0);
echo "$name: ";

/*Get the second field of the row as a stream.
Because the default return type for a nvarchar field is a
string, the return type must be specified as a stream. */
$stream = sqlsrv_get_field( $stmt, 1, 
                            SQLSRV_PHPTYPE_STREAM( SQLSRV_ENC_CHAR));
while( !feof( $stream ))
{ 
    $str = fread( $stream, 10000);
    echo $str;
}

/* Free the 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écupération des données
Référence de l'API (Pilote SQL Server pour PHP)