mysqli_result::$num_rows
mysqli_num_rows
(PHP 5, PHP 7)
mysqli_result::$num_rows -- mysqli_num_rows — Получает число рядов в результирующей выборке
Описание
Объектно-ориентированный стиль
Процедурный стиль
Возвращает число рядов в результирующей выборке.
Поведение функции mysqli_num_rows() зависит от того, используется ли буферизованная или не буферизованная результирующая выборка. Для не буферизованной выборки mysqli_num_rows() не вернет правильное число рядов пока все ряды не будут получены и обработаны.
Список параметров
-
result
-
Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().
Возвращаемые значения
Возвращает число рядов в результирующей выборке.
Замечание:
Если число рядов больше чем
PHP_INT_MAX
, то число будет возвращено в виде строки.
Примеры
Пример #1 Объектно-ориентированный стиль
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* проверка соединения */
if (mysqli_connect_errno()) {
printf("Соединение не удалось: %s\n", mysqli_connect_error());
exit();
}
if ($result = $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name")) {
/* определение числа рядов в выборке */
$row_cnt = $result->num_rows;
printf("В выборке %d рядов.\n", $row_cnt);
/* закрытие выборки */
$result->close();
}
/* закрытие соединения */
$mysqli->close();
?>
Пример #2 Процедурный стиль
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* проверка соединения */
if (mysqli_connect_errno()) {
printf("Соединение не удалось: %s\n", mysqli_connect_error());
exit();
}
if ($result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name")) {
/* определение числа рядов в выборке */
$row_cnt = mysqli_num_rows($result);
printf("В выборке %d рядов.\n", $row_cnt);
/* закрытие выборки */
mysqli_free_result($result);
}
/* закрытие соединения */
mysqli_close($link);
?>
Результат выполнения данных примеров:
В выборке 239 рядов.
Смотрите также
- mysqli_affected_rows() - Получает число строк, затронутых предыдущей операцией MySQL
- mysqli_store_result() - Передает результирующий набор последнего запроса
- mysqli_use_result() - Готовит результирующий набор на сервере к использованию
- mysqli_query() - Выполняет запрос к базе данных
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Расширения для работы с базами данных отдельных производителей
- MySQL Drivers and Plugins
- Улучшенный модуль MySQL
- Функция mysqli_result::$current_field() - Получает смещение указателя по отношению к текущему полю
- Функция mysqli_result::data_seek() - Перемещает указатель результата на выбранную строку
- mysqli_result::fetch_all
- mysqli_result::fetch_array
- Функция mysqli_result::fetch_assoc() - Извлекает результирующий ряд в виде ассоциативного массива
- Функция mysqli_result::fetch_field_direct() - Получение метаданных конкретного поля
- Функция mysqli_result::fetch_field() - Возвращает следующее поле результирующего набора
- Функция mysqli_result::fetch_fields() - Возвращает массив объектов, представляющих поля результирующего набора
- Функция mysqli_result::fetch_object() - Возвращает текущую строку результирующего набора в виде объекта
- Функция mysqli_result::fetch_row() - Получение строки результирующей таблицы в виде массива
- Функция mysqli_result::$field_count() - Получение количества полей в результирующем наборе
- Функция mysqli_result::field_seek() - Установить указатель поля на определенное смещение
- Функция mysqli_result::free() - Освобождает память занятую результатами запроса
- Функция mysqli_result::$lengths() - Возвращает длины полей текущей строки результирующего набора
- Функция mysqli_result::$num_rows() - Получает число рядов в результирующей выборке
Коментарии
If you have problems making work this num_rows, you have to declare ->store_result() first.
<?php
$mysqli = new mysqli("localhost","root", "", "tables");
$query = $mysqli->prepare("SELECT * FROM table1");
$query->execute();
$query->store_result();
$rows = $query->num_rows;
echo $rows;
// Return 4 for example
?>
This function doesn't work with LIMIT used jointly with SQL_CALC_FOUND_ROWS. If you want to obtain the total rows found you must do it manually, example:
<?php
public function errorList(int $limit=25,int $offset=0){
$errorList = array();
$result = $this->con->query("SELECT SQL_CALC_FOUND_ROWS id, erreur FROM Erreurs ORDER BY id DESC LIMIT $limit OFFSET $offset");
while($row = $result->fetch_assoc()){
$errorList[] = new Erreur($row);
}
$result->free();
// $foundRows = $result->num_rows; // 25
$foundRows = $this->con->query("SELECT FOUND_ROWS() as foundRows");
$this->foundRows = $foundRows->fetch_assoc(); // 178
return $errorList;
}
?>