Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Bazy danych PHP

Słowa kluczowe: Funkcja mysql_connect() w PHP Komunikacja aplikacji internetowej z bazą SQL

Jaki komunikat należy umieścić w przedstawionym fragmencie kodu PHP zamiast znaków zapytania?

$wynik = mysqli_query($polaczenie, "SELECT * FROM uczniowie WHERE klasa = '3a'");
if (mysqli_num_rows($wynik) == 0) echo "???";
A. Tabela uczniowie nie istnieje
B. Rekord został pomyślnie dodany do bazy
C. Błąd połączenia z serwerem SQL
D. Brak uczniów w klasie 3a
Poprawny komunikat to "Brak uczniów w klasie 3a". Zapytanie SQL wybiera rekordy z tabeli uczniowie tylko dla tych wierszy, w których pole klasa ma wartość '3a'. Funkcja mysqli_num_rows($wynik) zwraca liczbę wierszy otrzymanych po wykonaniu zapytania SELECT. Warunek mysqli_num_rows($wynik) == 0 oznacza więc: wynik zapytania nie zawiera żadnego rekordu. W takiej sytuacji skrypt powinien poinformować, że nie znaleziono uczniów z klasy 3a. Do zapamiętania: mysqli_num_rows() stosuje się do wyników zapytań SELECT, aby sprawdzić liczbę zwróconych wierszy. Typowa pułapka to mylenie pustego wyniku zapytania z błędem wykonania zapytania lub błędem połączenia z bazą.
Ten warunek nie sprawdza stanu połączenia ani poprawności struktury bazy, tylko liczbę rekordów zwróconych przez zapytanie SELECT. Komunikat "Błąd połączenia z serwerem SQL" byłby trafny przy nieudanym połączeniu, na przykład po błędzie funkcji mysqli_connect(), a nie przy wyniku zawierającym 0 wierszy. Komunikat "Rekord został pomyślnie dodany do bazy" dotyczy operacji INSERT, zwykle ocenianej przez powodzenie mysqli_query() albo liczbę zmienionych rekordów, a tutaj wykonywane jest tylko pobieranie danych. Komunikat "Tabela uczniowie nie istnieje" oznaczałby błąd zapytania SQL, ponieważ serwer nie mógłby odczytać wskazanej tabeli; wtedy należałoby analizować błąd zapytania, a nie wynik mysqli_num_rows(). Poprawny komunikat to "Brak uczniów w klasie 3a". Typowy błąd myślowy polega na utożsamianiu pustego zestawu wyników z awarią bazy danych. Zero wierszy może oznaczać po prostu, że nie ma danych spełniających warunek WHERE.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.