Share via


Comparar las funciones de recuperación de datos

El Controlador de SQL Server para PHP proporciona las siguientes opciones para recuperar datos de un conjunto de resultados:

  • sqlsrv_fetch_array: Recupera la fila siguiente de datos como una matriz indizada numéricamente, una matriz asociativa o ambas.

  • sqlsrv_fetch_object: Recupera la fila siguiente de datos como un objeto de PHP.

  • sqlsrv_fetch/sqlsrv_get_field: Cuando se usan en combinación, se recupera un campo especificado de una fila de datos. La función sqlsrv_fetch hace que la fila siguiente de un conjunto de resultados esté disponible para su lectura. La función sqlsrv_get_field recupera datos del campo especificado de la fila actual.

    Nota

    La combinación de sqlsrv_fetch y sqlsrv_get_field proporciona acceso con desplazamiento sólo hacia delante a datos.

Las funciones sqlsrv_fetch_array y sqlsrv_fetch_object cargan una fila completa de un conjunto de resultados en memoria script y devuelven datos según los tipos de datos predeterminados de PHP. (Para obtener información acerca de los tipos de datos predeterminados de PHP, vea Tipos de datos predeterminados de PHP.)

Por el contrario, la combinación de sqlsrv_fetch/sqlsrv_get_field carga un único campo de una fila del conjunto de resultados en memoria script y permite la especificación del tipo de valor devuelto de PHP. (Para obtener información acerca de cómo especificar el tipo de valor devuelto de PHP, vea Cómo especificar tipos de datos de PHP.) Esta combinación de funciones también permite que los datos se recuperen como una secuencia. (Para obtener información acerca de cómo recuperar datos como una secuencia, vea Recuperar datos como una secuencia.)

Nota

Al usar cualquiera de las funciones mencionadas anteriormente, se deben evitar las comparaciones NULL como criterio para salir de los bucles. Debido a que las funciones de sqlsrv devuelven false cuando se produce un error, el código siguiente podría dar lugar a un bucle infinito al producirse un error en 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));

Vea también

Otros recursos

Consideraciones de diseño
Recuperar datos