KWALIFIKACJA INF3 - CZERWIEC 2016

PYTANIE NR 35.
Zadaniem funkcji PHP o nazwie mysqli_num_rows() jest
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Funkcja mysqli_num_rows() zwraca liczbę wierszy (rekordów) znajdujących się w wyniku zapytania, typowo po wykonaniu SELECT i uzyskaniu obiektu wyniku. Nie służy do pobierania kolejnego rekordu ani wskazywania rekordu o danym numerze, tylko do policzenia, ile wierszy zawiera wynik.

Pełne wyjaśnienie:

Funkcja mysqli_num_rows() (rozszerzenie MySQLi) służy do uzyskania informacji, ile wierszy znajduje się w wyniku zapytania zwróconym przez bazę danych. W praktyce używa się jej po wykonaniu zapytania (np. SELECT), gdy aplikacja ma już "wynik zapytania" i chce policzyć rekordy, np. do komunikatu "Znaleziono N wyników" albo do sprawdzenia, czy wynik jest pusty.

Poprawna jest odpowiedź "zwrócić liczbę wierszy znajdujących się w wyniku zapytania", ponieważ dokładnie opisuje zwracaną wartość tej funkcji: liczbę rekordów w result set.

Pozostałe odpowiedzi opisują inne czynności, które nie są zadaniem tej funkcji:

  • "zwrócić kolejny rekord z wynikami zapytania" – to mechanizm pobierania danych wiersz po wierszu (np. przez funkcje typu fetch), a nie liczenia wierszy w całym wyniku.
  • "ponumerować rekordy w bazie danych" – numerowanie rekordów nie jest funkcją interfejsu MySQLi; identyfikatory/numeracja to kwestia projektu tabeli (np. kolumny z kluczem głównym) lub zapytania SQL, nie mysqli_num_rows().
  • "zwrócić rekord, którego numer podany został w parametrze funkcji" – mysqli_num_rows() nie przyjmuje parametru numeru rekordu; działa na obiekcie wyniku i podaje wyłącznie liczbę wierszy, nie treść konkretnego wiersza.

Warto też pamiętać o aktualności API: w nowoczesnym PHP używa się MySQLi lub PDO, a dawne funkcje z rodziny mysql_* nie działają w nowych wersjach środowiska. Na egzaminie zwracaj uwagę na to, czy pytanie dotyczy liczenia wierszy (metadane wyniku), czy pobierania danych (rekordy).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
mysqli_num_rows() zwraca liczbę wierszy (rekordów) znajdujących się w wyniku zapytania SQL, gdy masz już obiekt wyniku z MySQLi. Najczęściej używa się jej po SELECT, aby sprawdzić, ile rekordów zwróciła baza.
Zwraca liczbę całkowitą oznaczającą liczbę wierszy w wyniku zapytania (result set). To informacja o rozmiarze wyniku, a nie treść rekordów. Do pobierania danych służą metody/funkcje typu fetch.
Ponieważ funkcje mysql_* pochodzą ze starego rozszerzenia ext/mysql, które zostało wycofane i usunięte w nowych wersjach PHP. W praktyce kod z mysql_* nie uruchomi się na typowych serwerach z PHP 7/8, a dodatkowo nie wspiera nowoczesnych mechanizmów bezpieczeństwa.
mysqli_num_rows() tylko liczy wiersze w wyniku. Pobieranie rekordu polega na odczytaniu danych konkretnego wiersza (np. iteracja po wynikach). To dwa różne cele: metadane wyniku vs. faktyczne dane rekordów.
Używa się jej, gdy chcesz szybko sprawdzić, czy zapytanie zwróciło jakiekolwiek rekordy (0 czy więcej) albo wyświetlić informację o liczbie wyników. To typowe w wyszukiwarkach, listach użytkowników i prostych panelach administracyjnych.
Najczęściej używa się jej dla zapytań zwracających wynik tabelaryczny (np. SELECT). Dla zapytań modyfikujących dane (INSERT/UPDATE/DELETE) stosuje się inne informacje, np. liczbę zmienionych wierszy. Na egzaminie rozróżniaj te przypadki.
Najczęściej myli się liczenie wierszy z pobieraniem wiersza (rekordu) oraz miesza nazwy starych funkcji mysql_* z mysqli_*. Pomaga zapamiętać, że w nazwie jest "num_rows", czyli "liczba wierszy", a nie "fetch".
W PDO często spotyka się PDOStatement::rowCount(), ale w przypadku SELECT wynik może zależeć od sterownika. Dlatego w praktyce bywa bezpieczniej pobrać dane i policzyć elementy. Na potrzeby podstawowych pytań egzaminacyjnych ważne jest rozumienie celu: policzenie wierszy.
Typowy schemat to sprawdzenie, czy mysqli_num_rows() zwraca 0. Jeśli 0, wyświetlasz komunikat "brak danych", a jeśli większe od 0, przetwarzasz rekordy. To prosta i częsta technika w aplikacjach WWW.
Warto przećwiczyć pełny przepływ: połączenie z bazą, wykonanie SELECT, uzyskanie wyniku, policzenie rekordów i iterację po wierszach. Ucz się rozróżniać funkcje "liczące" od "pobierających" oraz pamiętaj, że stare mysql_* nie obowiązuje w nowoczesnym PHP.
info

To pytanie poprawnie rozwiązuje 61% zdających egzamin. średnie

W praktyce zawodowej kluczowe jest to, że funkcja mysqli_num_rows() zwraca liczbę wierszy (rekordów) znajdujących się w wyniku zapytania, typowo po wykonaniu SELECT i uzyskaniu obiektu wyniku.

Źródła:

  • PHP Manual: mysqli_num_rows — Returns the number of rows in a result set, https://www.php.net/manual/en/mysqli-result.num-rows.php (dostęp: 2026-03-06)
  • PHP Manual: MySQL extension (ext/mysql) — deprecated and removed in PHP 7.0.0, https://www.php.net/manual/en/book.mysql.php (dostęp: 2026-03-06)
  • PHP Manual: mysql_num_rows — ext/mysql deprecated in PHP 5.5.0 and removed in PHP 7.0.0, https://www.php.net/manual/en/function.mysql-num-rows.php (dostęp: 2026-03-06)

Materiały:

  • Dokumentacja PHP: MySQLi (opis funkcji pracy z wynikiem zapytania)
  • Ćwiczenia praktyczne: wykonanie SELECT i użycie funkcji do policzenia wierszy wyniku
  • Materiały o bezpieczeństwie: prepared statements w MySQLi i PDO

Aktualizacja pytania: 03.04.2026



Aktualizacja pytania: 03.04.2026
📡 Brak połączenia internetowego