Comparaison des fonctions de récupération des données
Le Pilote SQL Server pour PHP offre les options suivantes pour la récupération des données d'un jeu de résultats :
sqlsrv_fetch_array : récupère la ligne suivante de données sous forme de tableau indexé numériquement, de tableau associatif ou les deux.
sqlsrv_fetch_object : récupère la ligne suivante de données sous forme d'objet PHP.
sqlsrv_fetch/sqlsrv_get_field : cette combinaison récupère un champ spécifié à partir d'une ligne de données. La fonction sqlsrv_fetch rend la ligne suivante d'un jeu de résultats disponible pour la lecture. La fonction sqlsrv_get_field récupère les données du champ spécifié de la ligne actuelle.
Remarque : La combinaison de sqlsrv_fetch et sqlsrv_get_field fournit un accès aux données de type avant uniquement.
Les fonctions sqlsrv_fetch_array et sqlsrv_fetch_object chargent l'intégralité d'une ligne d'un jeu de résultats dans la mémoire de script et retournent les données selon les types de données PHP par défaut. (Pour plus d'informations sur les types PHP par défaut, consultez Types de données PHP par défaut.)
En revanche, la combinaison de sqlsrv_fetch/sqlsrv_get_field charge un seul champ d'une ligne d'un jeu de résultats dans la mémoire de script et autorise la spécification du type de retour PHP. (Pour plus d'informations sur la façon de spécifier le type de retour PHP, consultez Procédure : spécifier les types de données PHP.) Cette combinaison de fonctions permet également de récupérer les données sous forme de flux. (Pour plus d'informations sur la récupération des données sous forme de flux, consultez Récupération des données sous forme de flux.)
Remarque : |
---|
Lorsque vous utilisez l'une des fonctions mentionnées ci-dessus, évitez les comparaisons basées sur des valeurs Null en tant que critères de sortie des boucles. Dans la mesure où les fonctions sqlsrv retournent false lorsqu'une erreur se produit, le code suivant peut provoquer une boucle infinie après une erreur dans sqlsrv_fetch_array:
/* This code could result in an infinite loop. It is recommended that
you do NOT use null comparisons as the criterion for exiting loops,
as is done here. */
do{
$result = sqlsrv_fetch_array($stmt);
} while( !is_null($result));
|
Voir aussi
Autres ressources
Considérations relatives à la conception
Récupération des données