Przejdź do głównej treści
  1. Strona główna
  2. Technik informatyk
  3. INF.03
  4. Pytanie

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: Instrukcja DELETE FROM w SQL PHP mysqli_affected_rows() w PHP

Jaką wartość uzyska zmienna x po wykonaniu kodu PHP zaprezentowanego w ramce?

Ilustracja do pytania z kwalifikacji INF.03
W przedstawionym kodzie PHP funkcja mysqli_affected_rows() jest używana do uzyskania liczby wierszy zmienionych przez ostatnie zapytanie MySQL. W tym przypadku zapytanie DELETE FROM produkty WHERE status < 0 próbuje usunąć wszystkie rekordy z tabeli produkty, których pole status ma wartość mniejszą od zera. Po wykonaniu tego zapytania funkcja mysqli_affected_rows($db) zwróci liczbę wierszy, które zostały rzeczywiście usunięte. To jest szczególnie przydatne w kontekście sprawdzania wpływu operacji na bazę danych i pozwala na dynamiczne podejmowanie decyzji w aplikacjach bazodanowych. Przykładowo, jeśli po usunięciu chcemy wykonać dodatkowe operacje tylko wtedy, gdy co najmniej jeden rekord został usunięty, możemy użyć tej funkcji. Zgodnie z dobrymi praktykami, korzystanie z mysqli_affected_rows() jest standardem, gdyż pozwala również na obsługę wyjątków i błędów bazy danych. Optymalizacja operacji DELETE poprzez precyzyjne filtrowanie w WHERE, jak w naszym przykładzie, jest kluczowa dla zachowania wydajności bazy danych szczególnie w dużych systemach produkcyjnych.
Podczas analizy innych opcji należy zrozumieć, dlaczego nie są one poprawne. Jeśli chodzi o odpowiedź sugerującą, że zmienna x przyjmie wartość liczby wierszy dodanych do tabeli produkty, to jest to błędne, ponieważ funkcja mysqli_affected_rows() nie zlicza wierszy dodanych, lecz tylko te, które zostały zmienione w wyniku operacji INSERT, UPDATE lub DELETE. Inna odpowiedź sugerująca, że zmienna mogłaby przyjąć wartość liczby wierszy w całej bazie danych, jest również niepoprawna. Aby obliczyć całkowitą liczbę wierszy w tabeli, używa się zapytania SELECT COUNT(*), a nie mysqli_affected_rows(). Ta funkcja nie jest przeznaczona do wykonywania zliczania rekordów bezpośrednio z bazy danych. Kolejna niepoprawna propozycja dotyczy liczby wierszy, dla których pole status jest większe od zera. W naszym zapytaniu DELETE nie ma żadnego odniesienia do takich wierszy, ponieważ warunek WHERE specyfikuje usunięcie jedynie tych z wartością status mniejszą od zera. To oznacza, że mysqli_affected_rows() nie zwróci żadnej wartości w odniesieniu do wierszy z innymi warunkami. Typowym błędem jest interpretowanie funkcji jako uniwersalnego narzędzia do zliczania rekordów w różnych kontekstach, podczas gdy jej rzeczywiste zastosowanie jest ściśle związane z operacjami modyfikującymi zawartość tabel w bazie danych. Warto zwrócić uwagę na właściwe użycie tej funkcji w kontekście operacji modyfikujących oraz na precyzyjne konstruowanie zapytań SQL w celu osiągnięcia oczekiwanych rezultatów. Korzystanie z mysqli_affected_rows() umożliwia sprawne zarządzanie i monitorowanie efektów operacji na danych, co jest kluczowe w projektowaniu niezawodnych aplikacji bazodanowych.

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. Wyślemy 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.