tworzenie-serwisow-www.-pierwsza-pomoc pełna wersja.pdf

(48301 KB) Pobierz
888125770.116.png
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
888125770.127.png 888125770.135.png 888125770.140.png 888125770.001.png 888125770.004.png 888125770.015.png 888125770.026.png 888125770.037.png 888125770.047.png 888125770.058.png 888125770.069.png 888125770.074.png 888125770.075.png 888125770.076.png 888125770.077.png 888125770.078.png 888125770.079.png 888125770.080.png 888125770.081.png 888125770.082.png 888125770.083.png 888125770.084.png 888125770.085.png 888125770.086.png 888125770.087.png 888125770.088.png 888125770.089.png
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 
888125770.090.png 888125770.091.png 888125770.092.png 888125770.093.png 888125770.094.png 888125770.095.png 888125770.096.png 888125770.097.png 888125770.098.png 888125770.099.png 888125770.100.png 888125770.101.png 888125770.102.png 888125770.103.png 888125770.104.png 888125770.105.png 888125770.106.png 888125770.107.png 888125770.108.png 888125770.109.png 888125770.110.png 888125770.111.png 888125770.112.png 888125770.113.png 888125770.114.png 888125770.115.png 888125770.117.png 888125770.118.png 888125770.119.png 888125770.120.png
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?
888125770.121.png 888125770.122.png 888125770.123.png 888125770.124.png 888125770.125.png 888125770.126.png 888125770.128.png 888125770.129.png 888125770.130.png 888125770.131.png 888125770.132.png
 
888125770.133.png 888125770.134.png
 
888125770.136.png 888125770.137.png
 
888125770.138.png 888125770.139.png
 
 
888125770.141.png
 
888125770.142.png 888125770.143.png 888125770.144.png 888125770.145.png 888125770.146.png
 
 
 
888125770.002.png 888125770.003.png
 
 
 
 
 
 
888125770.005.png 888125770.006.png 888125770.007.png 888125770.008.png 888125770.009.png 888125770.010.png 888125770.011.png 888125770.012.png 888125770.013.png 888125770.014.png 888125770.016.png 888125770.017.png 888125770.018.png 888125770.019.png 888125770.020.png 888125770.021.png 888125770.022.png 888125770.023.png 888125770.024.png 888125770.025.png 888125770.027.png 888125770.028.png 888125770.029.png 888125770.030.png 888125770.031.png 888125770.032.png 888125770.033.png 888125770.034.png 888125770.035.png 888125770.036.png 888125770.038.png 888125770.039.png 888125770.040.png 888125770.041.png
 
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?
888125770.042.png 888125770.043.png 888125770.044.png 888125770.045.png 888125770.046.png 888125770.048.png 888125770.049.png 888125770.050.png 888125770.051.png 888125770.052.png 888125770.053.png 888125770.054.png 888125770.055.png 888125770.056.png 888125770.057.png 888125770.059.png 888125770.060.png 888125770.061.png 888125770.062.png 888125770.063.png 888125770.064.png 888125770.065.png 888125770.066.png 888125770.067.png 888125770.068.png 888125770.070.png 888125770.071.png 888125770.072.png 888125770.073.png
Zgłoś jeśli naruszono regulamin