Maria Sokół, ebooki
[ Pobierz całość w formacie PDF ]
Tworzenie serwisów WWW
24. Jak wprowadzać dane do tabeli
za pomocą modułu phpMyAdmin? / 71
25. Jak nawiązywać połączenie z bazą danych
z poziomu kodu PHP? / 74
26. Jak umieszczać na stronie WWW dane pochodzące z bazy? / 77
27. Jak wprowadzać za pomocą strony WWW
nowe dane do bazy? / 81
28. Jak wprowadzać za pomocą strony WWW
poprawki do danych zapisanych w bazie? / 89
29. Jak powiązać ze sobą dwie tabele danych? / 91
30. Jak zmienić nazwy pól danych zwracanych
w wyniku zapytania SQL? / 102
31. Jak wykorzystywać technologię AJAX
na własnych stronach WWW? / 106
4
Spis treści
Tworzenie serwisów WWW
B
aza danych obsługiwana za pomocą specyicznego narzę-
25. Jak
nawiązywać
połączenie
z bazą danych
z poziomu
kodu PHP?
dzia nie jest specjalnie przydatna. Owszem, jej możliwości
wyszukiwania i grupowania danych mogą być naprawdę wiel-
kie, jeżeli jednak użytkownik bazy nie ma wobec niej takich
wymagań, prosty arkusz kalkulacyjny będzie wygodniejszy
w obsłudze i umożliwi szybsze wprowadzenie danych.
Siłą baz danych jest jednak możliwość bezpośredniej współ-
pracy z własnymi stronami WWW. Za pomocą kilku poleceń
języka PHP można uzyskać możliwość odczytywania danych
z bazy, iltrowania tych danych według zadanych kryteriów,
dodawania nowych rekordów lub modyikowania już istnieją-
cych, a na koniec usuwania wybranych rekordów danych.
Zanim jednak będzie można z poziomu programu PHP
odwołać się do danych zapisanych w bazie, należy nawiązać
połączenie z serwerem bazy danych. Odpowiada za to instruk-
cja
mysql_connect()
, której parametrami są:
nazwa lub adres IP komputera-serwera,
nazwa konta użytkownika,
hasło konta użytkownika.
Zwracana wartość to identyikator połączenia. Jeżeli będzie
równy
false
, połączenie nie mogło zostać nawiązane. Kod
nawiązujący połączenie to zatem:
$baza = mysql_connect('localhost', 'baza', 'helion');
if ($baza === false) die('Nie można było nawiązać połączenia
z bazą '
.'z powodu błędu: ' . mysql_error());
Funkcja
mysql_error()
zwraca tekstowy opis ostatnio
wykrytego błędu w komunikacji z bazą danych. W razie prob-
lemów z połączeniem instrukcja
die()
spowoduje przerwanie
działania całego programu („śmierć” strony WWW: stąd nazwa
funkcji) i wypisanie w ramach strony komunikatu o błędzie
uzupełnionego o kod błędu odczytany z bazy.
74
Tworzenie serwisów WWW
Wskazówka
Ze względów bezpieczeństwa dobrze jest błędy zwraca-
ne przez funkcję
mysql_error()
wyświetlać na stronie tylko
w czasie pracy nad kodem. Gdy strona działa już poprawnie,
należy usunąć komunikaty, a zostawić tylko kod przerywający
działanie programu. Na podstawie komunikatów błędów wła-
mywacz może bowiem się domyślić, jaka technika włamania
byłaby odpowiednia w danym przypadku.
Gdy zostanie już nawiązane połączenie z bazą danych, należy
zdeiniować sposób kodowania przesyłanych znaków. Najlepiej
jest wybrać uniwersalny standard kodowania UTF-8:
mysql_query('SET NAMES "utf8"');
Teraz musimy zadecydować, której bazy będziemy uży-
wać w trakcie całego połączenia. Oczywiście, decyzję można
zmieniać w czasie pracy (a nawet selektywnie wybierać tabele
z dowolnych baz), jednak w większości przypadków jedno-
krotne dokonanie wyboru zaraz po nawiązaniu połączenia
całkowicie wystarcza. Do wyboru bazy danych służy instrukcja
mysql_select_db()
, której parametrem jest nazwa bazy danych;
zwracana wartość oznacza, czy wybór się udał (
true
), czy też
był z jakiegoś powodu niemożliwy (
false
):
$ok = mysql_select_db('szkola');
if ($ok === false) die('Nie można było wybrać bazy danych '
.'z powodu błędu: ' . mysql_error());
Teraz można już wydawać polecenia odczytujące, dodające
lub modyikujące rekordy danych; zostaną one omówione
w kolejnych punktach. Na koniec pracy należy jednak zamknąć
połączenie z bazą. Służy do tego instrukcja
mysql_close()
:
mysql_close($baza);
75
25. Jak nawiązywać połączenie z bazą danych z poziomu kodu PHP?
Tworzenie serwisów WWW
Cały szkielet programu korzystającego z bazy danych będzie
zatem wyglądał następująco:
$baza = mysql_connect('localhost', 'baza', 'helion');
if ($baza === false) die('Nie można było nawiązać połączenia
z bazą '
.'z powodu błędu: ' . mysql_error());
$ok = mysql_select_db('szkola');
if ($ok === false) die('Nie można było wybrać bazy danych '
.'z powodu błędu: ' . mysql_error());
//
--- tutaj instrukcje korzystające z bazy danych ---
mysql_close($baza);
Szkielet ten nie będzie już powtarzany w kolejnych ćwi-
czeniach: po prostu instrukcje korzystające z bazy danych
muszą znaleźć się między sekwencją instrukcji nawiązują-
cych połączenie z bazą a instrukcją
mysql_close()
zamykającą
to połączenie.
76
25. Jak nawiązywać połączenie z bazą danych z poziomu kodu PHP?
[ Pobierz całość w formacie PDF ]