30 dniowy kurs php – dzień 29 – MySQL UPDATE


Back-end (php, mysql)

Polecenie UPDATE służy do aktualizacji istniejących danych w bazie. Załóżmy, że mamy portal typu facebook. Ludzie zmieniają sobie w nim personalne informacje. Statusy związku, miejsce zamieszkania, pracę etc. Wszystkie te dane są zapisywanie w bazie danych i zmiana (jeśli jest to baza MySQL) odbywa się właśnie przy pomocy polecenia UPDATE.

Jak wygląda polecenie update?

UPDATE (nazwa tabeli) SET (nazwa kolumny = nowa wartość) WHERE (nazwa kolumny = konkretny rekord) AND (nazwa kolumny = konkretny rekord)

Po polsku: zaktualizuj tabelę ustawiając nową wartość konkretnej kolumny we wpisach które spełniają konkretne kryteria.

Poniżej właściwy skrypt. Zanim go uruchomisz wejdź do phpMyAdmina na localhost i zobacz jak wyglądają wpisy w tabeli ludzie. Będziemy zmieniać wiek, więc po uruchomieniu poniższego skryptu odśwież wyniki tabeli w myPhpAdminie.

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title>MySQL UPDATE</title>
</head>
<body>

<?php
$serwer = 'localhost';
$uzytkownik = 'root';
$haslo = 'hasloZmyphpadmina';

// ustanawiamy połączenie
$polaczenie = mysql_connect($serwer, $uzytkownik, $haslo);

// wybieramy bazę
mysql_select_db('baza', $polaczenie) or die ('Error: ' . mysql_error());

// ustawiamy kodowanie znaków
mysql_query("SET NAMES 'utf8'");

// aktualizujemy wpisy w tabeli ludzie
mysql_query("UPDATE ludzie SET Wiek=28 WHERE Imie='Robert' AND Nazwisko='Kubica'");
mysql_query("UPDATE ludzie SET Wiek=35 WHERE Imie='Adam' AND Nazwisko='Małysz'");
mysql_query("UPDATE ludzie SET Wiek=44 WHERE Imie='Andrzej' AND Nazwisko='Gołota'");

echo 'Wprowadzono zmiany';

mysql_close($polaczenie);
?>

</body>
</html>

Odśwież myPhpAdmina i zobacz zaktualizowane wpisy w tabeli ludzie.

Polecenie AND jest opcjonalne i w zasadzie można użyć go dowolną ilość razy jeśli chcesz skonkretyzować aktualizowany wpis. Jeśli natomiast podasz za mało wartości czyli pominiesz AND i zaktualizujesz wiek tylko z poleceniem WHERE Imie=’Andrzej’ to jeśli będziesz miał więcej rekordów o imieniu Andrzej, to w każdym z nich wiek zostanie zmieniony. Byłoby to niepożądane zjawisko. Zawsze lepiej maksymalnie doprecyzować dane, które chcemy zaktualizować.

A już jutro ostatnia lekcja 30 dniowego kursu PHP. Zajmiemy się zdalnym (czyli przy pomocy php) usuwaniem wpisów z bazy MySQL.