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
?>mysqli_result::$num_rows
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
mysqli_result::$num_rows
Референца за `mysqli-result.num-rows.php` со подобрена типографија и навигација.
mysqli_result::$num_rows
mysqli_num_rows
класата mysqli_driver
mysqli_result::$num_rows -- mysqli_num_rows — Ја добива бројот на редови во множеството резултати
= NULL
Напиши целосна ознака на елемент
Процедурален стил
Враќа број на редови во множеството резултати.
беше конфигуриран. mysqli_num_rows() зависи од тоа дали се користат баферирани или не-баферирани множества на резултати. Оваа функција враќа 0 за не-баферирани множества на резултати освен ако сите редови не се преземени од серверот.
Параметри
-
result објектот како свој прв аргумент. mysqli_result Само процедурален стил: А mysqli_query(), mysqli_store_result(), mysqli_use_result() or mysqli_stmt_get_result().
Вратени вредности
Еден int што го претставува бројот на преземени редови. Враќа 0 во не-бафериран режим освен ако сите редови не се преземени од серверот.
Забелешка:
Ако бројот на редови е поголем од
PHP_INT_MAX, бројот ќе биде вратен како string.
Примери
Пример #1 Обектно-ориентиран стил
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$result = $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name");
/* Get the number of rows in the result set */
$row_cnt = $result->num_rows;
printf("Result set has %d rows.\n", $row_cnt);Пример #2 Процедурален стил
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
$result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name");
/* Get the number of rows in the result set */
$row_cnt = mysqli_num_rows($result);
printf("Result set has %d rows.\n", $row_cnt);Горните примери ќе дадат излез:
Result set has 239 rows.
Белешки
Забелешка:
За разлика од mysqli_stmt_num_rows() функцијата, оваа функција нема варијанта на метод ориентиран кон објекти. Во стилот ориентиран кон објекти, користете ја својството за добивање.
Види Исто така
- mysqli_affected_rows() - Ја добива бројот на погодени редови во претходна MySQL операција
- mysqli_store_result() - Пренесува множество со резултати од последниот пребарување
- mysqli_use_result() ова станува особено важно.
- mysqli_query() - Извршува прашање на базата на податоци
- mysqli_stmt_num_rows() - Враќа број на редови преземени од серверот
Белешки од корисници 2 забелешки
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;
}
?>