subiektywnie o e-biznesie

PHP i bazy danych – podstawowe informacje

PHP i bazy danych – podstawowe informacje

Co to jest PHP?

PHP, hmm, chyba mój ulubiony język… Jest on przeznaczony do tworzenia dynamicznych stron WWW (dynamiczny nie oznacza, że coś tam sobie po stronie "lata", rusza się, zmienia), a prostym językiem mówiąc: kod PHP jest wykonywany przez serwer i wynikowo dostajemy kod HTML, którego rezultaty widzimy w przeglądarce. Nie możemy więc zobaczyć kodu PHP zamieszczonego na danej stronie, bo jest on przetwarzany po stronie serwera, a my widzimy tylko rezultaty jego wykonania. Jest to pewna zaleta, bo nikt nie ma dostępu do napisanego przez nas kodu – w końcu mogą tam być zapisane jakieś hasła (które jednak pamiętajcie, że należy kodować np. md5 czy sha1, a najlepiej przechowywać zakodowane w bazie danych), czy też po prostu napisaliśmy jakiś ciekawy skrypt, poświęciliśmy mu sporo czasu i nie chcielibyśmy, żeby od tak ktoś sobie go skopiował. Oczywiście to nie jest jakaś główna zaleta PHP, bo ma on bardzo duże możliwości, jest obecnie najczęściej stosowaną technologią do tworzenia dynamicznych stron wraz z bazą danych MySQL (poczytaj o Open Source).

Warto nauczyć się języka PHP!

Trudno żebym tutaj wymieniał jakie możliwości ma PHP, co możemy stworzyć, ale może dla początkujących osób powiem tyle, że warto, naprawdę warto uczyć się tego języka, wszelkie "bajery", jak liczniki, księgi gości, ankiety, są pisanie w PHP (oczywiście są też inne technologie). Początkujący często takie elementy zakładają sobie w serwisach oferujących takie darmowe komponenty. A czy nie fajniej jest samemu sobie coś takiego napisać? Dostosować i sformatować, jak tylko się nam podoba? A ile z tego satysfakcji! W sieci również bardzo dużo jest darmowych systemów CMS, ich instalacja jest banalnie prosta, za darmo można założyć hosting z PHP, bazą danych i czym tam jeszcze się chce – w wyniku tego powstaje wiele stron postawionych na takich CMSach, niestety często takie strony sobie po prostu stoją i "zaśmiecają" Internet. A czy nie byłoby fajnie samemu napisać sobie taką stronę, system? Nie twierdzę, że gotowe, darmowe CMSy są złe czy też źle napisane, ale pomyślcie, ile napisanie czegoś takiego dałoby Wam radości i satysfakcji! A to wcale nie jest trudne – znając PHP oraz bazy danych jak MySQL czy PostgreSQL, można coś takiego sobie samemu napisać, rzecz jasna od razu nie napiszesz skomplikowanego systemu, ale trzeba ćwiczyć i próbować.

Nie zapominaj o bezpieczeństwie

Warto pamiętać o bezpieczeństwie – co prawda nikt nie widzi naszego kodu, ale nie zmienia to faktu, że często programiści PHP popełniają błędy (ja na pewno również), które dalej są tylko furtką, aby ktoś nam zaszkodził. Na temat bezpiecznego programowania w PHP znajdziecie sporo artykułów w Sieci, napisano też o tym niejedną książkę. Ja tak tylko ogólnie powiem, że warto pamiętać o zabezpieczaniu zmiennych przekazywanych metodami GET i POST (funkcje addslashes, htmlspecialchars, strip_tags itd, konwersja int itd.), uważać na register globals, nie robić rzeczy typu include ‘$_GET[parametr].php’ oraz stosować przyjazne linki czyli mod rewrite – nie dość, że dzięki temu linki rzeczywiście są przyjazne, bo przecież ładniej wygląda artykul,3,powitanie.html niż index.php?action=artykul&id=3, to jeszcze niejako maskuje przed potencjalnym "złoczyńcą" rzeczywisty adres (poprzez zmienne przekazywane metodą GET również można nieraz zaszkodzić). Przydatne jest to również przy pozycjonowaniu stron w wyszukiwarkach. To tak bardzo, ale to bardzooooo ogólnie o bezpieczeństwie – polecam poszukać sobie w Google, bo jest na ten temat mnóstwo świetnych stron i blogów.

MySQL i PostgreSQL – podstawowe informacje

Teraz może króciutko o PostgreSQL – bardzo dobra baza danych, chociaż ciężko znaleźć darmowy hosting z jej obsługą. Nie będę jej opisywał czy też porównywał z MySQLem – na ten temat w Sieci jest sporo artykułów i dyskusji, jednak proponuje każdemu, kto już zaczął przygodę z PHP czy też dopiero zamierza, aby zainstalował sobie na komputerze tę właśnie bazę i nauczył się z niej korzystać z poziomu PHP (bardzo prosta rzecz, niewiele różni się od obsługi MySQL) oraz zapoznał się z takimi elementami, jak widoki, triggery, funkcje. Do pracowania na bazie również polecam przyzwyczajonym do phpMyAdmin (dla MySQL) zainstalowanie sobie phpPgAdmina.

Warto również dobrze przestudiować język zapytań SQL – słyszałem takie opinie, że to bardzo prosty język i wystarczy znać podstawowe rzeczy jak select, delet, update, order czy limit. Może czasem to wystarcza, ale do prostych zadań – wierzcie mi: zapytania SQLowe czasem przyjmują "straszne formy" (w końcu nie jest tak, że zawsze wykonujemy operacje na 1 tabeli, przykładowo jakiś system katalogu stron posiada 3 tabele, które są ze sobą w relacji – tabela z nazwami kategorii, tabela ze stronami, tabela, którą łączy id strony z id kategorii i aby pobrać na przykład spis wszystkich stron i nazwę kategorii, dla każdej należy napisać zapytanie, które będzie pobierać dane z tych 3 tabel).

Umiejętność porządnego zaprojektowania bazy danych (układu tabel i ich relacji) dla konkretnego celu jest bardzo ważnym elementem (jak nie najważniejszym!) każdego systemu informatycznego, który na bazie danych się opiera. Od tak zaprojektowanej struktury zależy końcowy efekt, czyli jak ten nasz napisany systemik będzie działał. Również od tego jak to wszystko zbudujemy, zależy nasza programistyczna "zabawa" – jak za bardzo nakombinujemy, to potem możemy sobie flaki wypruwać przy pisaniu zapytań SQL czy też stwierdzić, że wszystko trzeba przebudować (bo przykładowo przy dobrej strukturze dane zadanie można by wykonać 1 poleceniem, a nam będą potrzebne 2 albo więcej).

Zacznij ćwiczyć małymi krokami

Polecam każdemu w ramach ćwiczeń napisanie sobie w domu jakiegoś katalogu stron, forum internetowego czy innego systemu opartego o bazę danych – nie musi to być ładne graficznie, chodzi raczej o ćwiczenie projektowania struktury baz, doskonalenie i poznawanie błędów. Napiszcie coś takiego zarówno dla MySQLa jak i PostgreSQLa – jeśli chcecie kiedyś pracować jako programiści PHP, umiejętność dobrego projektowania relacyjnych baz danych jest niezbędna, a znajomość nie tylko MySQLa na pewno będzie atutem w oczach pracodawcy i zdecydowanie się przyda. Polecam również każdemu, jeśli chodzi o PHP naukę programowania obiektowego, które od wersji 5 jest naprawdę rozbudowane (programowanie strukturalne w PHP jak się to mówi "jest jak źle przyrządzone spaghetti – wygląda, jak nie wiadomo co i w dodatku ucieka z talerza"), poczytać zagadnienia związanych z tematem cache'owania informacji z baz danych oraz o systemach szablonów (np. Smarty).

4 komentarze

  1. Bardzo fajny wpis, widziałam ostatnio podobne artykuły i ten się wyróżnia na tle innych oraz jest wart uwagi. Konkretnie objaśniony temat. Bardzo przyjemnie się go czyta. Czekam na takich więcej 🙂

    Odpisz
  2. Moją pierwszą dynamiczną stronę internetową zrobiłem w PHP i MySQL. To była praca inżynierska. Do tej pory stawiałem wyłącznie na programowanie, czyli tworzenie funkcjonalności. O wiele później zainteresowałem się warstwą wizualną i poznałem CSS. Okazało się to dla mnie też ciekawym zajęciem. Podoba mi się tworzenie interaktywnych stron www za pomocą PHP i ASP.NET. Polecam zacząć od PHP. Jest też najczęściej udostępniany do wykorzystania na hostingach www.

    W pełni zgodzę się z Bartkiem na temat relacyjnych baz danych. Jak ważne jest przewidzenie różnych możliwości w przyszłości wykorzystania danych w bazie danych. Warto zastanowić się jakie dane mogą być nam potrzebne, nawet za kilka lat oraz po jakich kryteriach będziemy szukać danych. Jeśli coś przeoczymy, to później przeorganizowanie struktury bazy danych jest zadaniem pracochłonnym, a czasem wręcz niemożliwym. Dlatego dobre zaprojektowanie bazy danych jest tak ważne. Najwięcej czasu poświęcam na zaprojektowanie bazy danych.

    Przy wielu tabelach i relacjach między nimi zapytania SQL są bardzo długie i zagmatwane. Trzeba sporo praktyki, aby tworzyć takie zapytania, do tego dobrze zoptymalizowane. W trakcie studiów miałem styczność z innowacyjnymi rozwiązaniami. Korzystałem z obiektowych baz danych i języka zapytań opartego na stosach. Może wizualnie wyglądały nawet podobnie do SQL, ale można było zrobić krótsze zapytania.

    Tworzenie stron internetowych za pomocą PHP i bazy danych MySQL polecam każdemu, kto lubi pracę twórczą i wytrwale dąży do celu. Jest przy tym dobra zabawa.

    Pozdrawiam
    Paweł Protaś

    Odpisz
  3. Zastanawiam się ile czasu potrzebuje przeciętna osoba, aby opanować php i MySQL w takim stopniu aby postawić np. serwis społecznościowy.
    Macie jakieś przemyślenia w tym temacie?

    Odpisz
    • Przeciętna osoba nie stawia serwisu społecznościowego bo trwałoby to w pojedynkę strasznie długo. – przynajmniej moim zdaniem.

      Odpisz

Skomentuj Paweł Protaś Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Uwaga: zasady rozsądnego komentowania.
1. Daruj sobie komentarze typu "Dobry wpis", "Gratulacje! link.pl" itp.
2. Komentuj tak, jakbyś chciał, aby u Ciebie komentowano.
3. Podawaj w formularzu Twój prawdziwy adres e-mail (jest bezpieczny!)
4. Link do Twojej strony WWW (w podpisie) pokaże się dopiero wtedy, gdy napiszesz 5-ty komentarz na ebiznesy.pl. Pamiętaj jednak, aby zawsze podawać ten sam adres mailowy (komentarze zliczane są właśnie po mailu).