sqlsrv_num_rows
Informa del número de filas de un conjunto de resultados.
Sintaxis
sqlsrv_num_rows( resource $stmt )
Parámetros
$stmt: el conjunto de resultados en el que se van a contar las filas.
Valor devuelto
Se devolveráFalse si se produce un error al calcular el número de filas. De lo contrario, se devolverá el número de filas del conjunto de resultados.
Observaciones
sqlsrv_num_rows requiere un cursor de cliente, estático o de conjunto de claves, y devolverá False si utiliza un cursor de avance o un cursor dinámico. (El valor predeterminado es un cursor de avance). Para más información sobre los cursores, consulte sqlsrv_query y Tipos de cursor (controlador SQLSRV).
Ejemplo
<?php
$server = "server_name";
$conn = sqlsrv_connect( $server, array( 'Database' => 'Northwind' ) );
$stmt = sqlsrv_query( $conn, "select * from orders where CustomerID = 'VINET'" , array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
$row_count = sqlsrv_num_rows( $stmt );
if ($row_count === false)
echo "\nerror\n";
else if ($row_count >=0)
echo "\n$row_count\n";
?>
En el ejemplo siguiente se muestra que cuando hay más de un conjunto de resultados (una consulta por lotes), el número de filas solo está disponible cuando se utiliza un cursor de cliente.
<?php
$serverName = "(local)";
$connectionInfo = array("Database"=>"AdventureWorks");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$tsql = "select * from HumanResources.Department";
// Client-side cursor and batch statements
$tsql = "select top 2 * from HumanResources.Employee;Select top 3 * from HumanResources.EmployeeAddress";
// works
$stmt = sqlsrv_query($conn, $tsql, array(), array("Scrollable"=>"buffered"));
// fails
// $stmt = sqlsrv_query($conn, $tsql);
// $stmt = sqlsrv_query($conn, $tsql, array(), array("Scrollable"=>"forward"));
// $stmt = sqlsrv_query($conn, $tsql, array(), array("Scrollable"=>"static"));
// $stmt = sqlsrv_query($conn, $tsql, array(), array("Scrollable"=>"keyset"));
// $stmt = sqlsrv_query($conn, $tsql, array(), array("Scrollable"=>"dynamic"));
$row_count = sqlsrv_num_rows( $stmt );
echo "\nRow count for first result set = $row_count\n";
sqlsrv_next_result($stmt);
$row_count = sqlsrv_num_rows( $stmt );
echo "\nRow count for second result set = $row_count\n";
?>