mysqli_fetch_row() w PHP

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

mysqli_fetch_row() w PHP

mysqli_fetch_row() to funkcja PHP używana przy pracy z bazą danych MySQL przez rozszerzenie MySQLi. Służy do pobrania jednego wiersza z wyniku zapytania SQL jako tablicy indeksowanej numerycznie.

Składnia

$wiersz = mysqli_fetch_row($wynik);

Parametr $wynik to rezultat zwrócony przez mysqli_query(), najczęściej po wykonaniu zapytania SELECT.

Jak działa?

Każde wywołanie mysqli_fetch_row() pobiera kolejny wiersz z zestawu wyników. Dane w tablicy są dostępne przez indeksy liczbowe:

$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");

$wiersz = mysqli_fetch_row($zapytanie);
echo $wiersz[0]; // imię
echo $wiersz[1]; // nazwisko

Jeżeli zapytanie zwraca kolumny imie i nazwisko, to:

  • $wiersz[0] oznacza wartość z pierwszej kolumny,
  • $wiersz[1] oznacza wartość z drugiej kolumny.

Przykład z pętlą

$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
$ile = mysqli_num_rows($zapytanie);

for ($i = 0; $i < $ile; $i++) {
    $wiersz = mysqli_fetch_row($zapytanie);
    echo "$wiersz[0] $wiersz[1]";
}

W takim kodzie poprawnym poleceniem w miejscu pobierania danych jest właśnie mysqli_fetch_row($zapytanie);.

Częsty błąd egzaminacyjny

Nie należy mylić tej funkcji z:

  • mysqli_num_rows() — zwraca liczbę wierszy wyniku,
  • mysqli_num_fields() — zwraca liczbę kolumn,
  • mysqli_free_result() — zwalnia pamięć zajętą przez wynik,
  • mysqli_query() — wykonuje zapytanie SQL.

mysqli_fetch_row() jest używane wtedy, gdy trzeba odczytać dane z kolejnych rekordów wyniku zapytania.