mysqli_num_rows

(PHP 5)

mysqli_num_rows --  Gets the number of rows in a result

Description

Procedural style:

int mysqli_num_rows ( mysqli result )

Object oriented style (property):

class mysqli {

int num_rows

}

Returns the number of rows in the result set.

The use of mysqli_num_rows() depends on whether you use buffered or unbuffered result sets. In case you use unbuffered resultsets mysqli_num_rows() will not correct the correct number of rows until all the rows in the result have been retrieved.

Возвращаемые значения

Returns number of rows in the result set.

Замечание: If the number of rows is greater than maximal int value, the number will be returned as a string.

Примеры

Пример 1. Object oriented style

<?php
$mysqli
= new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
  
printf("Connect failed: %s\n", mysqli_connect_error());
   exit();
}

if (
$result = $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name")) {

  
/* determine number of rows result set */
  
$row_cnt = $result->num_rows;

  
printf("Result set has %d rows.\n", $row_cnt);

  
/* close result set */
  
$result->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link
= mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
  
printf("Connect failed: %s\n", mysqli_connect_error());
   exit();
}

if (
$result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name")) {

  
/* determine number of rows result set */
  
$row_cnt = mysqli_num_rows($result);

  
printf("Result set has %d rows.\n", $row_cnt);

  
/* close result set */
  
mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Result set has 239 rows.


mysqli_num_rows
jon at fuck dot org
04-Jan-2006 10:39
this is stated in the main mysqli section under constants, but isn't stated here: to get a get a buffered result set, use MYSQLI_STORE_RESULT in your query or call mysqli_store_result() when fetching the result set from a prepared query. this allows you to get the right rowcount every time, since your result set is going to be atomic.

don't forget that whether or not you really want to buffer the result set is a different question altogether.

<mysqli_num_fieldsmysqli_options>
 Last updated: Tue, 15 Nov 2005