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

Przedstawiony fragment kodu PHP ma za zadanie w tabeli dane zmienić wartość pola imie na zawartość zmiennej $a w rekordzie, którego klucz główny id jest równy wartości zmiennej $id. Które z poleceń powinno być przypisane do zmiennej $zapytanie?

<?php
...
$zapytanie = "...";
mysqli_query($db, $zapytanie);
...
?>
A.
UPDATE dane SET imie = '$a' WHERE id = $id;
B.
SELECT imie FROM dane WHERE id = $id;
C.
UPDATE dane SET imie = '$a';
D.
INSERT INTO dane (imie) VALUES ('$a');
Poprawne polecenie to UPDATE dane SET imie = '$a' WHERE id = $id;. Instrukcja UPDATE służy do modyfikowania istniejących rekordów w tabeli. Część SET imie = '$a' określa, że pole imie ma otrzymać wartość przechowywaną w zmiennej $a. Warunek WHERE id = $id ogranicza zmianę tylko do rekordu, którego klucz główny id ma wskazaną wartość. Schemat do zapamiętania to: UPDATE tabela SET kolumna = wartość WHERE warunek;. W praktyce brak warunku WHERE przy UPDATE jest częstą i groźną pomyłką, ponieważ może zmienić dane we wszystkich wierszach tabeli. Takie zapytanie wykonuje się przez mysqli_query($db, $zapytanie), czyli z poziomu PHP przekazuje się tekst SQL do serwera bazy danych.
W tym zadaniu trzeba rozróżnić operacje SQL: odczyt, dopisanie rekordu i modyfikację istniejących danych. Polecenie SELECT imie FROM dane WHERE id = $id; jedynie pobiera wartość pola imie z tabeli dane, więc byłoby trafne przy wyświetlaniu danych, a nie przy ich zmianie. Polecenie INSERT INTO dane (imie) VALUES ('$a'); dodaje nowy rekord do tabeli, ale nie modyfikuje istniejącego wiersza o podanym id. Polecenie UPDATE dane SET imie = '$a'; rzeczywiście zmienia pole imie, lecz bez warunku WHERE dotyczy wszystkich rekordów w tabeli dane, co zwykle prowadzi do uszkodzenia danych. Poprawne polecenie to UPDATE dane SET imie = '$a' WHERE id = $id;. Typowy błąd myślowy polega na skupieniu się tylko na fragmencie SET imie = '$a' i pominięciu warunku wskazującego konkretny rekord. Przy aktualizacji pojedynczego wiersza warunek WHERE jest niezbędny.

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.