Saltar al contenido

La matriz sqlsrv no devuelve todas las filas

Solución:

Cuando intento ver el conjunto de resultados

$ fila = sqlsrv_fetch_array ($ consulta, SQLSRV_FETCH_ASSOC);
print_r ($ fila); `

Dado que enumeró esto por separado, espero que no esté haciendo esto (mostrando todo el código):

$col="abcd";
$stmt = "SELECT id, sqlsrv array doesn't return all rows FROM dbo.tbl WHERE col = ?";
$params = array( $col );
$options =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );

$query = sqlsrv_query( $conn, $stmt, $params, $options );
if( $query === false ) {
    print( print_r( sqlsrv_errors() ) );
}

while( $row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC )) {
    ...
    $row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC );
    print_r($row);
}

Porque entonces es obvio que estás consumiendo sqlsrv_fetch_array dos veces por iteración de bucle, una vez para la verificación de condición y una vez dentro el lazo.

Elimine toda la pelusa del ciclo while y tenga solo esto, y absolutamente nada más, ni siquiera los … o los comentarios.

while( $row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC )) {
    print_r($row);
}

sqlsrv_fetch_array: Devuelve el Siguiente fila de datos disponible como una matriz asociativa, una matriz numérica o ambas (el valor predeterminado).

Énfasis mío.

Valores devueltos: devuelve una matriz en caso de éxito, NULL si no hay más filas para devolver y FALSE si se produce un error.

Deberá realizar un ciclo while para recuperar todos los registros, como este:

while ($row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC )) {
    //process $row
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *