PHP i bazy danych -- MySQL...
Wstęp
Język PHP jest obecnie chyba najpowszechniejszym językiem wykorzystywanym do tworzenia stron WWW. Wiele osób się nim interesuje ale -- podobnie jak to było ze mną i mikrokontrolerami -- myślą, że jest to zbyt trudne. O ile sam PHP dla kogoś, kto wcześniej programował nie jest trudny do opanowania (a określił bym go nawet jako łatwy), o tyle korzystanie z baz danych budzi już większe emocje i obawy... Zupełnie nieuzasadnione :)
Od czego zacząć?
Zakładam, że masz jakieś pojęcie o PHP i umiesz wyświetlić nieśmiertelne "Hello world!".
Jeśli chcesz korzystać z poziomu PHP z bazy danych, miło by było gdybyś taką bazę posiadał.
Niech to będzie na przykład baza o nazwie mojabaza, na serwerze serwerbazy do której
dostęp mamy przez login użytkownikbazy z hasłem hasłodobazy zaś baza "stoi" na MySQL.
Zakładam dalej, że znasz choć trochę SQL i potrafisz utworzyć (dowolnym narzędziem) tabele i wypełnić je danymi.
Baza...
Ok, połączmy się z bazą:
user@server ~$ mysql -p -u użytkownikbazy -d mojabaza Enter password: **hasłodobazy** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 152 to server version: 3.23.32 Type 'help;' or '\h' for help. Type '\c' to clear the buffer mysql>Udało się, teraz stwórzmy tabelę
mysql> create table `tabelatestowa` ( -> id int(5) NOT NULL auto_increment, -> opis text, -> PRIMARY KEY(`id`), -> UNIQUE KEY `id` (`id`) -> ) TYPE=MyISAM; Query OK, 0 rows affected (0.00 sec)Także się powiodło. Wypadałoby teraz wrzucić do bazy jakieś dane, którymi potem moglibyśmy się bawić:
mysql> INSERT INTO `tabelatestowa` VALUES (NULL, 'Rekord pierwszy'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO `tabelatestowa` VALUES (NULL, 'Rekord drugi'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO `tabelatestowa` VALUES (NULL, 'Rekord kolejny'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO `tabelatestowa` VALUES (NULL, 'Rekord nastepny'); Query OK, 1 row affected (0.00 sec)W takim razie sprawdźmy co już mamy w bazie:
mysql> select * from tabelatestowa; +----+-----------------+ | id | opis | +----+-----------------+ | 1 | Rekord pierwszy | | 2 | Rekord drugi | | 3 | Rekord kolejny | | 4 | Rekord nastepny | +----+-----------------+ 4 rows in set (0.00 sec)Skoro już mamy coś w bazie, to teraz przyszła kolej na wydobycie tego z poziomu PHP.
Najpierw połączmy się z bazą:
mysql_connect("serwerbazy","użytkownikbazy","hasłodobazy") or die("Blad -- nie moge polaczyc sie z serwerem baz danych\n\n");Teraz wybierzmy naszą bazę:
mysql_select_db("mojabaza") or die("Blad -- Nie moge wybrac bazy\n\n");Pobierzmy wszystko z naszej tabeli:
$result=mysql_query("select * from tabelatestowa") or die("Blad pobierania zawartosci tabeli\n\n"); while ($row = mysql_fetch_array($result)) { echo "Numer ID rekordu: $row[id]"; echo "Opis rekordu: $row[opis]"; }Zwolnijmy wyniki, nie będą nam już potrzebne:
mysql_free_result($result);
To właściwie koniec -- połączyliśmy się z bazą, przesłaliśmy zapytanie i odebraliśmy wynik. Wiedząc jak przebiega obsługa bazy, możemy np. dodać rekord, usunąć go czy zauktualizować. Polecam zapoznać się z doskonałą dokumentacją na stronach PHP i MySQL.
Prawa autorskie
© Copyright by Miłowan Odya (jeśli nie zaznaczono inaczej)