PHP Lekcije - lekcija 3 - Rad sa MySQL bazom podataka.
Verovatno mislite da je prerano odmah u trećem času početi rad sa MySQL bazom podataka. Ali verujte, nije tako. Učiti PHP kao jezik za web programiranje, a ne učiti kako da radi sa bazom podataka, isto je kao imati računar bez interneta. Možete raditi na takvom računaru, ali nemate gde da dobijete informacije. Zato zagrizimo i počnimo da pišemo SQL upite za bazu, čak i ako ne znamo ništa o SQL jeziku.
SQL (Structured Query Language — „jezik strukturiranih upita“) — univerzalni kompjuterski jezik koji se koristi za kreiranje, modifikaciju i upravljanje podacima u tabelarnim bazama podataka. SQL se zasniva na računanju zapisa u tabelama.
PHP može raditi sa mnogim bazama podataka: MySQL, PostgreSQL, Oracle i mnogim drugim. Mi ćemo učiti rad PHP-a sa MySQL-om, jer je ta kombinacija veoma popularna prilikom pravljenja sajtova. Takođe, učenje rada sa MySQL omogućava vam kasnije da radite i sa drugim bazama, jer je SQL univerzalan jezik i njegov sintaks uglavnom isti u svim tabelarnim bazama.
MySQL je slobodan sistem za upravljanje bazama podataka (SGBD). MySQL je u vlasništvu kompanije Oracle Corporation, koja ju je preuzela zajedno sa Sun Microsystems, koja razvija i održava aplikaciju. Distribuira se pod GNU General Public License ili sopstvenom komercijalnom licencom.
O SQL-u će biti mnogo časova. Za sada ćemo početi od najosnovnijeg – kako se povezati sa bazom. Napravićemo novi metod u klasi simpleCMS:
public function connectDB() { }
Ovim ćemo moći da pozivamo konekciju sa bazom iz bilo kog dela koda gde imamo objekat naše klase. Veoma praktično.
Takođe, potrebne su nam promenljive za server MySQL-a, korisnika baze i ime baze:
class simpleCMS { public $host = 'localhost'; public $username = 'root'; public $password = '';
Po defaultu ćemo ih definisati, u slučaju da ih zaboravimo. Ja koristim Denwer pa su mi ovakve postavke MySQL-a, ako koristite hosting ili svoj server, treba da koristite korisnika vašeg MySQL-a.
Sada koristimo funkciju mysql_connect() da napravimo konekciju ka MySQL:
public function connectDB() { $link = mysql_connect($this->host, $this->username, $this->password); if (!$link) { die('Greška u konekciji: ' . mysql_error()); } return $link; }
Objasnimo kako funkcioniše mysql_connect(). Prima tri parametra: ime MySQL servera, korisnika baze i lozinku. Ako konekcija ne uspe, ispisuje grešku i prekida izvršenje. Promenljive $this->host, $this->username, $this->password su svojstva klase, postavljena po defaultu, pa ih ne moramo definisati u metodu.
Funkcija vraća konekciju tipa resource, kao i fajl ili direktorijum resource, pa treba na kraju zatvoriti konekciju da oslobodimo memoriju. Poruku o uspehu konekcije možemo izostaviti.
Sada pozovimo metod na početku fajla index.php, odmah nakon učitavanja klase:
$obj = new simpleCMS(); // pravimo objekat klase $db_connection = $obj->connectDB();
Gde god treba da se povežemo na bazu, uključićemo fajl sa klasom, napraviti objekat i pozvati metodu konekcije. Ništa komplikovano.
Na kraju rada treba zatvoriti konekciju funkcijom mysql_close(). Neću praviti poseban metod za zatvaranje (mada bi bilo korisno ako zatreba), pa ću samo dodati ovaj kod:
include_once('class/simpleCMS.php'); // uključujemo fajl sa klasom $obj = new simpleCMS(); // kreiramo objekat $db_connection = $obj->connectDB(); // pravimo konekciju // rad sa bazom mysql_close($db_connection); // zatvaramo konekciju
Nadam se da je objašnjenje jasno i da ćemo u sledećem času pisati upite za MySQL bazu. Ako nešto nije jasno, pišite u komentarima.