KWALIFIKACJA INF3 - CZERWIEC 2022 (test 2)

PYTANIE NR 40.
Ilustracja przedstawia fragment kodu PHP, który jest częścią pytania egzaminacyjnego z kwalifikacji zawodowej dla technika
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
mysqli_fetch_array() służy do pobrania kolejnego wiersza z wyniku zapytania i zwrócenia go jako tablicy. Pozostałe funkcje mają inne role: mysqli_free_result() zwalnia wynik, mysqli_num_fields() podaje liczbę kolumn, a mysqli_query() wykonuje zapytanie, a nie odczytuje rekordów.

Pełne wyjaśnienie:

W pracy z bazą danych w MySQLi typowy przepływ wygląda tak: najpierw wykonujesz zapytanie, otrzymujesz wynik, a potem pobierasz z niego wiersze (rekordy) i je przetwarzasz.

Odpowiedź mysqli_fetch_array($zapytanie) jest poprawna, ponieważ funkcja mysqli_fetch_array() pobiera kolejny wiersz z obiektu wyniku (mysqli_result) i zwraca dane w postaci tablicy. To właśnie tej funkcji używa się w pętli (np. while) do odczytu wszystkich rekordów zwróconych przez SELECT.

Dlaczego pozostałe odpowiedzi są błędne w tym kontekście:

  • mysqli_free_result($zapytanie) nie pobiera danych. Służy do zwolnienia pamięci/zasobów zajmowanych przez wynik, gdy zakończysz już jego przetwarzanie. Użycie jej zamiast pobierania wierszy spowoduje utratę możliwości odczytu danych.
  • mysqli_num_fields($zapytanie) zwraca liczbę pól (kolumn) w wyniku. To informacja o strukturze wyniku, a nie metoda pobrania rekordów.
  • mysqli_query($zapytanie) dotyczy etapu wykonywania zapytania. W MySQLi funkcja ta przyjmuje połączenie i treść zapytania; nie służy do pobierania kolejnych wierszy z już uzyskanego wyniku.

Wskazówka egzaminacyjna: rozdziel w głowie trzy etapy: wykonaj (query), czytaj (fetch), posprzątaj (free). Jeśli pytanie brzmi o "pobranie rekordu/wiersza", zwykle właściwa jest funkcja z rodziny fetch.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
mysqli_fetch_array() pobiera kolejny wiersz z wyniku zapytania (mysqli_result) i zwraca go jako tablicę. Zwykle używa się jej w pętli do odczytania wszystkich rekordów zwróconych przez SELECT.
Najczęściej wykonuje się zapytanie, a potem w pętli pobiera kolejne wiersze funkcją z rodziny fetch, np. mysqli_fetch_array(). Pętla kończy się, gdy funkcja zwróci wartość oznaczającą brak kolejnych rekordów.
mysqli_query() służy do wykonania zapytania SQL i zwrócenia wyniku. Pobieranie danych odbywa się dopiero z obiektu wyniku, np. funkcjami fetch. To dwa różne etapy pracy z bazą danych.
Wynik zapytania to obiekt/zasób reprezentujący zestaw danych zwrócony przez bazę (np. z SELECT). Z tego wyniku dopiero pobiera się wiersze (rekordy) i kolumny, używając odpowiednich funkcji MySQLi.
mysqli_free_result() stosuje się po zakończeniu przetwarzania wyniku zapytania, aby zwolnić zasoby po stronie PHP. Nie pobiera ona danych, tylko "sprząta" po pracy z wynikiem, co bywa ważne w większych aplikacjach.
Pobieranie wiersza dotyczy odczytu danych rekordu (funkcje fetch), natomiast liczenie kolumn dotyczy informacji o strukturze wyniku (np. ile pól/kolumn ma wynik). To inne cele, więc używa się innych funkcji.
Tak. W praktyce "zapytanie" bywa rozumiane jako tekst SQL, a w MySQLi funkcje fetch oczekują wyniku (mysqli_result). Na egzaminie warto sprawdzić, czy zmienna oznacza treść SQL, czy obiekt wyniku, bo od tego zależy poprawna funkcja.
Częste błędy to: użycie funkcji fetch na niewłaściwej zmiennej (np. na tekście SQL), mylenie etapów query/fetch/free oraz zakładanie, że każda funkcja MySQLi przyjmuje te same argumenty. Pomaga zapamiętanie: query uruchamia, fetch czyta.
Rekord to wiersz danych, a pole to kolumna. Pytania mogą dotyczyć albo pobierania kolejnych rekordów (fetch), albo informacji o polach (np. liczbie kolumn). Pomylenie tych pojęć prowadzi do wyboru złej funkcji.
Przećwicz pełny schemat: połączenie, wykonanie SELECT, iteracja po wyniku (fetch), a na końcu porządkowanie zasobów. Warto też umieć rozpoznać po nazwie funkcji, czy dotyczy zapytania (query), wyniku (result) czy pobierania danych (fetch).
info

Około 58% zdających odpowiada poprawnie na to pytanie. średnie

Eksperci podkreślają: "mysqli_fetch_array() służy do pobrania kolejnego wiersza z wyniku zapytania i zwrócenia go jako tablicy."

Źródła:

  • PHP Manual: mysqli_fetch_array — https://www.php.net/manual/en/mysqli-result.fetch-array.php (dostęp: 2026-03-02)
  • PHP Manual: mysqli_free_result — https://www.php.net/manual/en/mysqli-result.free.php (dostęp: 2026-03-02)
  • PHP Manual: mysqli_num_fields — https://www.php.net/manual/en/mysqli-result.field-count.php (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja PHP: sekcja MySQLi – funkcje pracy z wynikiem zapytania
  • Ćwiczenia: pętla while z pobieraniem kolejnych wierszy wyniku i wyświetlaniem danych
  • Porównanie API MySQLi i PDO (kiedy i jak pobiera się rekordy)

Aktualizacja pytania: 31.03.2026

Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego