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.