Professional Documents
Culture Documents
PHP & MySQL PDF
PHP & MySQL PDF
Page 1
Prirunici za Web
P H P
Uvod
Instalacija
Vaa prva skripta
Slanje teksta u browser
Definiranje varijabli
Predefinirane varijable
Podruje djelovanja varijabli
Definiranje konstanti
Prihvat varijabli iz formulara
Izrazi (exprijessions)
Operatori
"If" grananje
"While" petlja
"For" petlja
Kontrolna struktura "Switch"
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
3
4
5
6
8
9
10
13
14
16
17
19
21
23
24
11.11.2007 23:32:59
PHP - Uvod
Funkcije
Argumenti
funkcija
Klase i objekti
Slanje e-mail poruka sa web-a (I dio)
32
Slanje e-mail poruka sa web-a (II dio)
Konekcija na MySQL bazu podataka (I dio)
35
Konekcija na MySQL bazu podataka (II dio)
PHP - Konekcija na MySQL bazu podataka (III-dio)
PHP - Zato koristiti MySQL kao SUBP?
Page 2
25
28
30
33
36
37
39
Uvod
PHP je iroko rasprostranjen Open Source skript
jezik koji se izvrava na strani web servera, a
namijenjen je za kreiranje dinamikih web
stranica, i uope razliitih Internet aplikacija. PHP
je nastao 1994. godine od strane Pasmus Ledorfa,
a inae je skraenica od "Personal Home Page
Tools". Autor je jezik kreirao radi odravanja vlastitih web stranica, a na bazi tada jako
zastupljenog Perl jezika. Inae, sintaksa samog jezika je vrlo slina sintaksama jezika
C i Perl. Nakon njegovog pojavljivanja, veliki broj programera i dizajnera je uzeo
uea u njegovom daljem razvoju (poto se radi o Open Source projektu), tako da je
jezik sada "dogurao" do verzije 5 (ako imate volje i entuzijazma i sami moete raditi na
njegovom razvoju).
PHP je podran od strane velikog broja platformi (gotovo svih), ali se posebno
odomaio na Unix/Linux platformi. Direktan konkurent PHP-Linux-Apache platformi
je ASP-WindowsNT-IIS platforma, ali po veini Internet marketing agencija ubjedljivo
vodi PHP platforma, uglavnom zato to je besplatna i to je otvorenog koda. Pored
svega navedenog, svoju popularnost duguje svojoj sposobnosti da podrava veliki broj
sistema za upravljanje bazama podataka (RDBMS), kao to su: na prvom mjestu
MySQL; pa zatim i ostali: MS SQL server, Oracle, Postgre SQL, MS Access i jo mnogi
drugi.
PHP na strani web servera predstavlja pretprocesor kome se prosljeuju PHP skripte.
Ovo u praksi radi na slijedei nain, kreirate HTML stranice i u njih dodate i svoje
PHP skripte, date stranice obavezno imaju ekstenziju "*.php". Kada ih postavite na
web server i korisnik ih zatrai putem svog browser-a, web server e na osnovu
ekstenzije prepoznati da se radi o PHP stranicama i proslijedit e ih instaliranom PHP
pretprocesoru. Potom e pretprocesor izvriti programski kod i rezultat vratiti web
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 3
serveru, koji nakon toga sve alje browser-u. Rezultat procesiranja su najee
dinamiki kreirane HTML stranice, koje se zasnivaju na podacima iz neke od baza
podataka, najee MySQL.
U sluaju da i sami odravate neki web site, sigurno ste se susreli sa problemom
odravanja sajta i to kada broj stranica prijeee kritian broj. U tom sluaju, kada
imamo veliki broj stranica, svaki update je vrlo mukotrpan. U tom momentu bi trebalo
da se okrenete PHP-u ili ASP-u, a sve u zavisnosti od toga na kojoj platformi radi va
host provajder.
Poto je pria o PHP-u zaista iroka, ovdje emo stati, a priu emo nastaviti u
slijedeim prilozima. Prvo to emo obraditi je, kako osposobiti vlastiti kompjuter za
PHP razvoj.
Instalacija
Poto se PHP izvrava na serveru, razvoj bi trebao
da se odigrava na vaem osobnom kompjuteru koji
ima stalnu vezu sa Internetom. Na njemu bi pisali
PHP-HTML programski kod i to odmah testirali na
serveru. Ali poto taj "luksuz" veina ne moe da
priuti rjeenje je instalacija vlastitog lokalnog
web servera sa podrkom za PHP. Ovo e vam
pruiti veliku udobnost u radu, a kada zavrite neki
projekt lako ga je poslati na server vaeg host
provajdera.
Poto veina host provajdera radi na platformi
"Linux/Apache/PHP/MySQL", i vi bi trebali da na
svom osobnom raunalu instalirate ovu opciju radi
potpune
kompatibilnosti
(ovo
je
malo
kompliciranije rjeenje). Ali, ne mora sve da bude
tako, sve ovo moe da se odradi i na veinskoj Windows platformi. Rjeenje se nalazi u
instalaciji besplatnih gotovih paketa (namijenjenih Windows-u) koji sadre sve
potrebne elemente. Prijeporuiemo vam jedan paket, koji u sebi sadri sve potrebno:
Apache web server, verzije 2.2.0
PHP 5.1.1
Perl 5
MySQL 5.0.18
Paket je proizvod njemake firme pod nazivom XAMPP :
http://www.apachefriends.org/en/xampp.html
Paket je veliine oko 29 megabajta (zapakiran), a pored gore navedenih komponenti u
paketu ete nai i dosta literature u elektronskom obliku. Kada "skinete" instalaciju i
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 4
raspakirate biti e dovoljno da startate instalaciju. Otvorie vam se prozor u kome treba
samo da kliknete na dugme "install" i krenut e instalacija koja e trajati nekoliko
minuta (kao na slici). I to je sve, sada ste sprijemeni za svoje prve korake u PHP-u.
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 5
<HTML>
<HEAD>
<TITLE>PHP pocetak</TITLE>
</HEAD>
<BODY>
Zdravo svijete!
</BODY>
</HTML>
Kao to ste i videli u primjeru, svaka PHP skripta poinje sa "<?php", a zavrava se sa
"?>". Skripte se ugnjeavaju u standardne HTML stranice, ali mogu biti i u eksternim
fajlovima. Ovdje smo za ispisivanje teksta u browser-u iskoristili funkciju "echo", a
cilj skripta je osnovno upoznavanje sa PHP sintaksom. Ovo je bilo dovoljno za
poetak, nastavak slijedi.
<html>
<body>
<?php
print "Ovo je print funkcija.";
print "<p>";
echo "Ovo je echo funkcija.", " ",
"P.S. Ovdje mozete dodati i drugi string", " ",
"ako stringove razdvojite zarezom.";
print "<p>";
printf ("Ovo je printf funkcija.");
print "<p>";
printf ("Funkcija printf se najcesce
koristi za formatiranje brojki.");
print "<p>";
printf ("Ne zaboravite zagradu sa
funkcijom printf.");
?>
</html>
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 6
</body>
Rezultat koji e server vratiti e biti:
Ovo je print funkcija.
Ovo je echo funkcija. P.S. Ovdje mozete dodati i drugi string ako stringove
razdvojite zarezom.
Ovo je printf funkcija.
Funkcija printf se najcesce koristi za formatiranje brojki.
Ne zaboravite zagradu sa funkcijom printf.
Kao to vidite upotrijebili smo sve tri funkcije:
print - najjednostavnija funkcija za slanje teksta u prozor browser-a. Funkcija
moe da se navodi i bez, i sa zagradama.
echo - funkcija slina prethodnoj, samo to ovdje moete da kombinirate vie
stringova, koje obavezno odvajamo zarezima. Sa ovom funkcijom se ne koriste
zagrade.
printf - funkcija koja najee slui za formatiranje brojki kao integera,
decimala itd. Ova funkcija obavezno zahtjeva upotrebu zagrada.
Nakon ove prie probajte da to vie eksperimentirate sa ovim funkcijama, poto su
one jako bitne za PHP/HTML kombiniranje. U slijedeem prilogu emo se baviti
varijablama, vrstama varijabli i nainom njihovog definiranja.
Definiranje varijabli
Varijable se u PHP-u predstavljaju tako to se
ispred naziva varijable postavlja znak dolara ($). Pri
definiranju varijabli moramo paziti i na upotrebu
malih-velikih slova, poto su nazivi varijabli
osetljivi na upotrebu "malih/velikih" karaktera
(case-sensitive). Pored ovoga moramo paziti i na
karakter kojim poinjemo naziv varijable. Iza znaka
dolara mogu da idu samo slova alfabeta ili
podvuena crta (underscore), a iza njih mogu da idu
i slova, znamenke, ili linije. Evo i primjera
pravilnog definiranja PHP varijabli:
<?php
$varijabla = 'Pero';
$Varijabla = 'Peric';
// izlaz "Pero, Peric"
echo "$varijabla, $Varijabla";
$_druga_var = 'pocetak';
// izlaz "pocetak"
echo "<br>$_druga_var" ;
?>
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 7
Predefinirane varijable
U prethodnom PHP prilogu, pisali smo o
varijablama i nainu definiranja varijabli. Pored
ovih varijabli koje su korisniki definirane, postoje i
tzv. "predefinirane" varijable od strane servera ili
PHP pretprocesora. Sam PHP pretprocesor
osigurava veliki broj predefiniranih varijabli koje su
dostupne svakoj skripti. Poto ovih varijabli ima
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 8
stvarno dosta, veliki broj nije dovoljno ni dokumentiran, a i veliki broj zavisi od
sistemskog okruenja tj. od: servera, verzije servera, verzije pretprocesora i drugih
faktora.
Serverske predefinirane varijable kreira, kao to smo rekli server, pri podizanju
sistema. Radi njihovog boljeg iskorienja prikazat emo vam one najvanije. Prva
meu njima je svakako varijabla koja sadri podatak o serveru i njegovoj verziji varijabla "SERVER_SOFTWARE". A evo i kako moemo da dobijemo podatak o
serveru:
Pokrenite "Apache" web server i pokrenite bilo koji tekst editor.
U novi "*.php" fajl unesite slijedei kod:
<?php
echo $SERVER_NAME;
?>
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 9
samo unutar jedne procedure (ili funkcije), a nije "vidljiva" i za druge procedure u PHP
skriptu.
U slijedeem PHP primjeru vidjet emo dva podruja djelovanja varijabli:
<?php
$a = 1; /* globalno podruje djelovanja */
Function Stampaj () {
echo $a; /* referenca ka varijabli lokalnog tipa*/
}
Stampaj ();
?>
Prethodna skripta nee prouzrokovati nikakav izlaz (znai, nee biti tampana jedinica)
jer naredba "echo" referencira lokalnu varijablu "$a", a lokalnoj "verziji" ovoj varijabli
nije dodjeljena nikakva vrijednost. Zbog ovoga, kada elimo da unutar funkcije
upotrebljavamo globalne varijable moramo ih tako i definirati (globalne unutar
funkcije):
<?php
$a = 1;
$b = 2;
Function Zbrajanje () {
global $a, $b;
$b = $a + $b;
}
Zbrajanje ();
echo $b;
?>
Rezultat gornje skripte bit e "3". Deklariranjem varijabli "$a" i "$b" kao globalne
unutar funkcije, mi smo izvrili referenciranje na promjenljive koje se nalaze van
funkcije. Pri tome, nema nikakvih ogranienja u broju globalnih varijabli kojima ete
manipulirati unutar jedne funkcije. U sluaju da u gornjem primjeru, u funkciji
"Zbrajanje()", niste definirali varijable kao globalne - rezultat bi bio "2".
Prethodni primjer moemo napisati i na drugi nain.
<?php
$a = 1;
$b = 2;
Function Zbrajanje () {
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}
Zbrajanje ();
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 10
echo $b;
?>
Ovdje se pristup vanjskim varijablama vri preko ugraenog PHP definiranog niza "$
GLOBALS". Niz $GLOBALS je asocijativni niz naziva globalnih varijabli, gdje
indekse predstavljaju nazivi varijabli, te se preko njih dolazi do vrijednosti samih
globalnih varijabli.
Jo jedna bitna mogunost kada govorimo o podruju djelovanja varijabli, je i
mogunost njihovog definiranja kao statikih varijabli ("Static"). Statike varijable
egzistiraju samo u lokalnoj funkciji, s tim to ne gube svoju vrijednost kada
programom napustimo datu funkciju. Pogledajte slijedei primjer:
<?php
Function Brojac () {
$a = 0;
echo $a;
$a++;
}
Brojac () ;
echo '<br>' ;
Brojac () ;
?>
Ova funkcija je uglavnom beskorisna poto svaki put kada se pozove (u naem sluaju
dva puta), vrijednost varijable "$a" postavlja na nulu i tampa nulu. Instrukcijom "$
a++" vrimo poveanje vrijednosti varijable za jedan, ali to ovdje nema nikakvu
funkciju, zbog toga to nakon ove instrukcije funkcija zavrava, a pri njenom
ponovnom pozivu vrijednost se vraa na nulu. Da bi funkcija "Brojac()" stvarno bila
korisna, varijablu "$a" moramo definirati kao statiku:
<?php
Function Brojac () {
static $a = 0;
echo $a;
$a++;
}
Brojac () ;
echo '<br>' ;
Brojac () ;
?>
Sada e nakon svakog poziva funkcije, vrijednost varijable "$a" uveati za jedan (kao
na slici). Ovakvim definiranjem vrijednost lokalne varijable uvamo u memoriji i
nakon zavretka date funkcije.
Definiranje konstanti
Kao to znate, iz drugih programskih jezika,
konstante predstavljaju identifikatore dodjeljenih
vrijednosti koji se ne mijenjaju tokom izvravanja
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 11
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 12
echo RECENICA;
?>
Skripta e rezultirati ispisom vrijednosti dodjeljenoj konstanti "RECENICA".
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 13
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 14
numerike (integer), ve mogu da budu bilo koji tip podataka. PHP pri tome podrava,
osim spomenutog integer-a, i skalarne vrijednosti, stringove i realne brojeve. PHP,
takoe, podrava i dva kompozitna tipa (tipovi sastavljeni od drugih tipova): nizove i
objekte. Naravno, pri tome, svaki od nabrojanih tipova podataka moe biti dodjeljen
nekoj varijabli ili moe biti vraen od strane funkcija.
Jo jedan dobar primjer izraza predstavljaju operacije uveanja (increment) i smanjenja
(decrement). Onima koji poznaju sintaksu jezika C sigurno su poznate ove dvije
operacije za promjenu vrijednosti, iji su operatori: ++ i --. Ako bi u PHP-u napisali "$
x++", ovo ne bi bio izraz poto prethodno varijabli nismo dodijelili nikakvu vrijednost.
Pored ovih operacija, u PHP-u su vrlo uobiajeni i komparacioni izrazi. Rezultat ovih
izraza mogu biti samo vrijednosti 0 ili 1, odnosno FALSE ili TRUE. PHP podrava
slijedee komparacione operatore: > (vee), < (manje), == (jednako), != (nejednako),
>= (vee ili jednako) i <= (manje ili jednako).
Posljednji primjer izraza bi bio kombinacija operator - dodjela. Ve smo rekli da
vrijednost neke varijable moemo da poveamo za 1, jednostavnim izrazom "$x++".
Ali to ako elite da dodate vie od jedan, na primjer etiri? Mogli biste da napiete
dodjelu etiri puta, ali to bi bilo neefikasno. Mnogo je komfornije napisati "$x = $x +
4", gde "$x + 4" uveava vrijednost varijable "$x" za etiri. Meutim, u PHP-u kao i u
nekoliko slinih jezika ovo moete zapisati na krai, jednostavniji i razumljiviji nain:
"$x += 4". Kao to vidite ovdje imamo kombinaciju komparacionog operatora i
operatora zbrajanja. Treba znati da se na slian nain mogu iskombinirati i ostali
operatori, npr. mnoenje vrijednosti varijable "$x" sa sedam bi bilo "$x *= 7". PHP
osigurava potpunu i snanu implementaciju izraza, a samo njihovo potpuno
dokumentiranje prevazilazi ovaj prilog.
Operatori
PHP podrava vei broj operatora, odnosno vrsta
operatora. U prethodnom prilogu, kada smo govorili
o izrazima spomenuli smo neke operatore poreenja
(==) i inkrementalni operator (++). Sada emo vam
predstaviti najvanije operatore koji se koriste u
kodiranju, a koje emo grupirati u nekoliko
kategorija:
Aritmetiki operatori
Naravno, nalaze se na prvom mjestu poto se
najee upotrebljavaju, a i svih ih poznajemo od
ranije. Aritmetike operatore ini 5 operatora:
Zbrajanje - ($x + $y) - sumira varijable.
Oduzimanje - ($x - $y) - predstavlja razliku izmeu varijabli.
Mnoenje - ($x * $y) - produkt dvije varijable.
Deljenje - ($x / $y) - kolinik dijeljenja dvije varijable. Pri dijeljenju dobijamo
cjelobrojnu vrijednost ako su operandi cjelobrojne vrijednosti, a ako su
decimalne dobijamo decimalnu vrijednost.
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 15
$x += 5;
// varijabla $x ima vrijed. 8, jer kao sto smo rekli: $x = $x + 5;
$y = "Cao ";
$y .= "svima!";
// varijabla $y ima vrijed. "Zdravo svima!",
//kombinirali smo operatore "=" i "."
Komparacioni operatori
Ovi operatori, kao to im i ime kae, slue za komparaciju (uporeivanje) dvije
vrijednosti:
$x == $y - operator "jednako".
$x === $y - operator "identino". Operator vezan za PHP verzije 4, a oznaava
da su dvije vrijednosti "identine" ako imaju istu vrijednost i ako su istog tipa.
$x != $y - operator "nejednako".
$x !== $y - operator "nisu identini", znai suprotno operatoru "identini".
$x < $y - operator "manje od".
$x > $y - operator "vee od".
$x <= $y - operator "manje ili jednako".
$x >= $y - operator "vee ili jednako".
Inkrementalni operatori
Kao i kod jezika C, imamo operatore koji slue za poveanje/smanjenje vrijednosti
varijabli za jedan:
++$x - operator poveava vrijednost varijable $x za jedan, pa tek onda vraa
varijablu $x.
$x++ - vraa se prvo vrijednost varijable, pa se zatim ista uveava za jedan.
--$x - smanjuje vrijednost varijable, pa onda vraa njenu vrijednost.
$x-- - vraa trenutnu vrijednost varijable, pa je zatim smanjuje za jedan.
Evo i jednog primjera:
<?php
echo "<h3>Uvecanje nakon dodele</h3>";
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 16
$a = 5;
echo "Varijabla a : " . $a++ . "<br>\n";
echo "Varijabla a : " . $a . "<br>\n";
?>
U prvom redu e se ispisati pet (5), a u drugom est (6).
String operatori
Ovdje postoje samo dva operatora, prvi je operator spajanja stringova - ".", koji kao
rezultat vraa spojeni string, lijevog i desnog argumenta. A drugi, je operator dodjele i
spajanja - ".=", koji na vrijednost lijevog argumenta dodaje vrijednost desnog
argumenta.Na primjer:
$a = "Zdravo ";
$b = $a . "Svijete!";
// sada $b sadrzi "Zdravo Svijete!"
$a = "Zdravo ";
$a .= "Svijete!";
// sada $a sadrzi "Zdravo Svijete!"
"If" grananje
Svaka PHP skripta je satkana od serije naredbi,
koje mogu biti razna dodjeljivanja, pozivi funkcija,
petlje, uvjetna grananja, pa ak i naredbe koje nita
ne rade (tzv. prazne naredbe). Svaka od instrukcija
zavrava, po pravilu, toka-zarezom (;). Pored
toga, odreeni broj naredbi moe graditi "grupu
naredbi" koje su same po sebi poseban izraz. Jedan
od ovih grupnih izraza je i "IF" grananje. "IF"
grananje prijedstavlja jedno od najvanijih
programskih struktura svakog jezika, meu njima je i PHP. Ova struktura osigurava
uvjetno izvravanje odreenog dijela programskog koda. Struktura PHP-ovog
"IF"
grananja je vrlo slina strukturi C jezika:
if (uvjet){
izrazi
}
Kao to smo rekli u prilogu o izrazima, "uvjet" predstavlja izraz sa odreenom
istinosnom vrijednou, koja moe biti TRUE ili FALSE. Ukoliko je vrijednost uvjeta
TRUE, PHP e izvriti naredbe koje se nalaze u dijelu "izrazi", a ako je ta vrijednost
FALSE - programski kod unutar ove strukture e se ignonirati.
Slijedei primjer e nam, uz pomo "IF" grananja, prikazati veu vrijednost od
vrijednosti dvije varijable koje se uporeuju:
<?php
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 17
"While" petlja
Nakon "If" strukture prelazimo na obradu najjednostavnijeg
tipa petlji u PHP-u, a to je "While" petlja. Struktura i
sintaksa u PHP-u je vrlo slina sintaksi ove petlje u
programskom jeziku C:
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 18
while (izraz) {
Naredbe
}
Semantika same petlje je vrlo jednostavna, ona "kae" PHP-u da ponavlja izvravanje
ugraenih naredbi, sve dok je ispunjen uvjet, tj. dok je vrijednost "izraza" TRUE.
Vrijednost izraza se provjerava samo na svakom poetku ponavljanja petlje, tako da
ako se ova vrijednost promjeni tokom izvravanja ugnjedenih instrukcija, izvrenje se
nee prekinuti do kraja date iteracije. U sluaju da je vrijednost "izraz"-a FALSE, nee
se izvriti ugnjedene naredbe, a izvrenje programa e se prebaciti na slijedeu
instrukciju koja dolazi nakon petlje.
Kao i kod "IF" grananja, i ovdje moete grupirati vie instrukcija unutar jedne "While"
petlje, i to uz pomo vitiastih zagrada, ili uz korienje alternativne sintakse:
while (izraz) :
...naredbe...
endwhile;
U slijedeim redovima moete vidjeti dvije "While" petlje, napisane na dva naina,
koje "tampaju" znamenke od 1 do 10:
<?php
/* 1. primjer */
$a= 1;
while ($a <= 10) {
print $a++;
}
/* 2. primjer */
$a = 1;
while ($i <= 10):
print $a;
$a++;
endwhile;
?>
Kao to vidite, ovdje smo upotrijebili inkrementalni operator (++) koji uveava
vrijednost varijable "$a", i to nakon njenog tampanja.
Slina prethodnoj "While" petlji je "Do...While" petlja, a razlika je samo u poziciji
provjeravanja "izraz"-a. Kod ove petlje provjera istinosne vrijednosti izraza se vri na
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 19
kraju petlje svake iteracije. Glavna razlika je u tome to e se kod ove druge petlje
(do...while) prva iteracija svakako izvriti, za razliku od "While" gdje se moda nee
izvriti ni jedna iteracija (u sluaju da je vrijednost izraza FALSE).
<?php
$a = 0;
do {
print $a;
} while ($a>0);
?>
Prethodna petlja e se izvriti tano jedanput, jer se nakon prve iteracije provjerava izraz ($a>0), koji e
imati vrijednost FALSE. Zbog ove vrijednosti izraza petlja e prekinuti dalje izvravanje.
"For" petlja
Za razliku od "jednostavne" sintakse "While" petlje, "For"
petlja ima najsloeniju sintaksu u PHP-u (vrlo slinu C-u).
Struktura i sintaksa je ove petlje je slijedea:
for (izraz1; izraz2; izraz3) {
naredba
}
Prvi izraz (izraz1) se provjerava (izvrava) samo jednom
(bezuvjetno), i to na poetku petlje. Na poetku svake
iteracije provjerava se drugi izraz (izraz2). Ukoliko je
istinosna vrijednost ovog izraza TRUE, petlja se nastavlja i
izvrava se ugnjedena instrukcija(e). Ukoliko je vrijednost izraza FALSE, prekinut e
se izvravanje petlje. Takoe, na kraju svake iteracije petlje provjerava se (izvrava se)
trei izraz (izraz3).
Svaki od nabrojanih izraza moe biti "prazan", tj. ne mora sadrati nikakav izraz. Ako
je na primjer, drugi izraz "prazan" petlja e se ponavljati nedefiniran broj puta. Moda
vam ova mogunost na prvi pogled nema smisla, ali sve do momenta kada ovu
mogunost budete upotrijebili sa uvjetnom instrukcijom "break". Razmotrite slijedei
primjer:
<?php
/* 1. primjer */
for ($a = 1; $a <= 10; $a++) {
print $a;
}
/* 2. primjer */
for ($b = 1;;$b++) {
if ($b > 10) {
break;
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 20
}
print $b;
}
/* 3. primjer */
$c = 1;
for (;;) {
if ($c > 10) {
break;
}
print $c;
$c++;
}
/* 4. primjer */
for ($d = 1; $d <= 10; print $d, $d++) ;
?>
Od ova etiri primjera, prvi je svakako najjasniji. U drugom primjeru je prikazan
"prazan" drugi izraz, pa imamo nedefiniran broj iteracija petlje. Ali, tu smo upotrijebili
"If" grananje i instrukciju "break", kojom izlazimo iz petlje (petlja se prekida) kada
vrijednost varijable "$b" bude 11 (nakon toga vrimo tampanje vrijednosti varijable).
Trei primjer je specifian jer su sva tri izraza "prazna" (nedefinirana). Tako da e se
data petlja izvravati u zavisnosti od prirode ugnjeenih naredbi. PHP naravno,
osigurava i alternativno definiranje "For" petlje (sa dvotokom):
for (izraz1; izraz2; izraz3):
...naredba; ...;
endfor;
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 21
<?php
if ($a == 0) {
print "a je jednako 0";
}
if ($a == 1) {
print "a je jednako 1";
}
if ($a == 2) {
print "a je jednako 2";
}
switch ($a) {
case 0:
print "a je jednako 0";
break;
case 1:
print "a je jednako 1";
break;
case 2:
print "a je jednako 2";
break;
}
?>
Jako je bitno da razumijete nain na koji se ova naredba izvrava, jer ete inae
nainiti greke. Naredba "Switch" se izvrava liniju po liniju (zapravo, naredbu po
naredbu). U prvom trenutku ne izvrava se ni jedna naredba. Tek kada PHP parser
utvrdi koja PHP vrijednost u Case izrazu odgovara vrijednosti Switch izraza, tada
poinje da se izvrava programski kod. PHP izvrava instrukcije do kraja "Switch"
bloka, ili do "Break" naredbe. Pazite, ukoliko ne napiete naredbu "Break" na kraju
svakog "Case" bloka, PHP e nastavljati izvravati sve naredne "Case" blokove.
Pogledajte slijedei primjer:
<?php
switch ($a) {
case 0:
case 1:
case 2:
print "a je manje od 3, ali nije negativno";
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 22
break;
case 3:
print "a je 3";
}
?>
Ukoliko je varijabla $a jednaka nuli (0), PHP e izvriti sve naredbe za ispis (Print)!
Ako je vrijednost varijable jedan (1), PHP e izvriti obje, donje naredbe za ispis. Tek
ako je vrijednost varijable dva (2), imat emo "oekivano" ponaanje ove strukture i
ispisat e se samo "a je manje od 3, ali nije negativno", jer iza ove naredbe slijedi
naredba prekida - "Break". Ovo znai da obavezno morate koristiti naredbu prekida.
Kod naredbe "Switch" uvjet se provjerava samo jedanput, a rezultat se uporeuje sa
svakom "Case" instancom. Naredba "Switch" je bolje rjeenje od viestrukih "If ... else
if" naredbi, jer se bre izvrava (zato to se uvjet viestruko provjerava). Specijalan
sluaj Case izraza predstavlja "podrazumjevana" Case naredba, iji se programski kod
izvrava ukoliko nije zadovoljena ni jedna prethodna Case instanca. Evo i primjera:
<?php
switch ($a) {
case 0:
print "a je 0";
break;
case 1:
print "a je 1";
break;
case 2:
print "a je 2";
break;
default:
print "a nije ni 0, ni 1, ni 2";
}
?>
Funkcije
Ako poznajete bilo koji programski jezik, sigurno
ste uli i za funkcije. Funkcija predstavlja skup
iskaza koji je organiziran na poseban nain, a PHP
parser je tretira kao zasebnu programsku cjelinu.
Svaka funkcija se sastoji od zaglavlja i tijela
funkcije, pri tome zaglavlje funkcije sadri
identifikator funkcije (naziv same funkcije) i
argumente sa njihovim definicijama, a u tijelu
funkcije sadrane su razliite izvrne instrukcije i
deklaracije varijabli koje se koriste u funkciji.
Naravno, deklaracija promjenljivih se mora
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 23
napisati prije izvrnih naredbi u kojima se upotrebljavaju date varijable. Evo i primjera
jedne vrlo jednostavne funkcije:
<?php
function ispisi () {
echo "Ovo je Vasa prva funkcija!";
}
?>
Identifikator "ispisi" u zaglavlju funkcije je sam naziv funkcije, kojim se funkcija
identificira i poziva njeno izvrenje. Prazna lista argumenata izmeu zagrada "(" i ")",
oznaava da ova funkcija nema argumenata, tj. iz pozivajueg dijela PHP skripta se ne
prenosi ni jedna vrijednost. Izmeu vitiastih zagrada je tijelo funkcije u koje idu
deklaracije i instrukcije. U tijelu funkcije "ispisi" imamo samo jednu instrukciju echo, koja e samo ispisati tekst. Kao to vidimo, unutar same funkcije nemamo
deklaraciju varijabli.
Ako bi ovakvu funkciju (unutar HTML stranice) proslijedili PHP parseru, nita se ne bi
desilo, odnosno parser bi vratio praznu HTML stranicu jer nigdje u PHP skripti nismo
pozvali funkciju "ispisi()" na izvrenje. Zato emo u prethodnu skriptu dodati i poziv
funkcije:
<?php
function ispisi () {
echo "Ovo je Vasa prva funkcija!";
}
ispisi();
?>
Kada se doe do poziva funkcije (ispisi), kontrola programa se direktno prenosi u
funkciju "ispisi()" i izvrava se tijelo funkcije, odnosno ispisuje se poruka "Ovo je
Vasa prva funkcija!". Na kraju funkcije, oznaene zatvorenom vitiastom zagradom,
kontrola programa se vraa na prvu instrukciju koja slijedi nakon iskaza kojim se
poziva funkcija ispisi.
Svaka funkcija se moe pozivati neodreeni broj puta, pa tako ako bi funkciju "ispisi
()" pozvali tri puta - tri puta bi se na ekranu ispisala poruka (kao na slici). to se tie
PHP-a, bilo koji valjan kod moe da se smjesti u tijelo funkcije, ukljuujui tu i druge
funkcije i klase.
Argumenti funkcija
U prethodnom PHP prilogu definirali smo ta su to
funkcije i kako se koriste, i ta su argumenti jedne
funkcije. Inae, razne informacije se funkciji mogu
proslijediti preko liste argumenata, koja
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 24
<?phps
function preuzimanje_niza($input) {
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>
Uglavnom se funkcijama prosljeuju konkretne vrijednosti, pa tako kada promjenimo
vrijednost argumenta unutar funkcije, nee se promjeniti i njegova vrijednost van
funkcije. Ukoliko elite da se vrijednosti prosljeenih argumenata mogu mijenjati
unutar funkcije, proslijedite te iste argumente u vidu referenci. A ako elite se
argumenti uvijek prosljeuju kao reference morat ete da ispred naziva argumenta
dodate znak ampersand (&). Evo i primjera prosljeivanja argumenta u vidu reference:
<?php
function dodaj_tekst(&$string) {
$string .= 'i dodatni dio stringa.';
}
$str = 'Ovo je string, ' ;
dodaj_tekst($str);
echo $str;
?>
Rezultat ove male skripte e biti ispis - "Ovo je string, i dodatni dio stringa.". Slino
prethodnoj metodi, varijablu kao referencu moete proslijediti i kada to niste u prvi
mah definirali, tada ete u samom pozivu funkcije dodati znak ampersand (&):
<?php
function bilo_sta ($rec) {
$rec .= ' ovo je dodatni dio.';
}
$str = 'Ovo je string, ';
bilo_sta ($str);
echo $str;
// izlaz ce biti 'Ovo je string, '
bilo_sta (&$str);
echo $str;
// izlaz 'Ovo je string, a ovo je dodatni dio.'
?>
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 25
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 26
return true;
} else {
return false;
}
}
}
?>
Kao to moete vidjeti, definirali smo klasu "Racun" (kupovni raun) koja sadri
odreeni broj artikala - stavki (niz $stavke) i dvije funkcije:
dodaj_stavku() - funkcija za dodavanje odreeneog broja (kom) artikala (ser_
br) na raun
ukloni_stavku()- funkcija za skidanje, takoe, odreenog broja (korisnik ne
mora ponititi kupovinu svih) stavki sa rauna.
Poto smo rekli da su klase kao tipovi podataka, da bi ih upotrijebili u programiranju,
potrebno je da deklariramo varijable na osnovu klase:
$racun = new Racun;
$racun->dodaj_stavku("10", 1);
Ovaj kod e kreirati objekat $racun koji pripada klasi Racun. Zatim smo funkcijom
"dodaj_stavku()", na raun dodali 1 komad artikla sa serijskim brojem 10.
Klase inae mogu biti proirenja drugih klasa. Pri tome, proirena klasa ima sve
varijable i funkcije osnovne klase (kroz tzv. nasljeivanje) i moe da ima dodatne
vlastite varijable i funkcije. Da naglasimo i to da viestruko nasljeivanje nije
podrano. Evo primjera proirivanja prethodno definirane klase Racun:
class Kupovni_Racun extends Racun {
var $kupac;
function unos_kupca ($ime) {
$this->kupac = $ime;
}
}
Ovim smo definirali novu klasu - Kupovni_Racun, koja ima sve varijable i funkcije kao
i klasa Racun, kao i dodatnu varijablu $kupac i funkciju unos_kupca().
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 27
su: prikaz "rezultirajue" stranice, provjera ulaznih podataka itd. Radei na ovoj "email" skripti, javie vam se vie ideja kako da ju upotrijebite i ime moete da ga
dopunite. Za poetak, evo i same sintakse PHP "mail" instrukcije:
mail ([primalac], [tema], [tijelo_poruke], [zaglavlja]);
Kao to vidite, nema niega to bi trebalo da vas uplai. Ako ste ve naprijedniji PHP
"skripter", u ovom trenutku ete ve znati ta dalje raditi. Ali, ako ste totalni poetnik,
onda je je ovo pravo mjesto za vas. Evo i koje toke emo obraditi kroz ovu temu:
Provjera, da li se poziv e-mail forme i izvrenje, vri sa vaeg sajta, a ne sa neke
druge lokacije.
Dinamiko kreiranje tijela e-mail poruke.
Osnovna provjera greaka i provjera popunjenosti svih polja (validacija).
Kreiranje "rezultujue" stranice i "rezultujue" stranice u sluaju greke.
Kreiranje mail forme (obrasca).
Pa, da krenemo odmah.
Kreemo sa prvom tokom, a to je detekcija "poiljaoca". Ovo je vrlo vana toka, jer
ako ne implementirate ovu mogunost, neki zlonamjerni PHP "skripteri" mogu lako da
iskoriste vau web mail formu za slanje velikog broja spam poruka. Neemo vam
prikazati, i kako se to radi, ali verujte - lake je nego to mislite. Dosta teoretiziranja,
imamo "puno posla", pa zato prelazimo na konkretne stvari. Prvo, na prethodnu liniju
PHP koda "nakalemiemo" jedno uvjetno "if...then" grananje, tako da moemo
zaustaviti slanje e-mail-a u sluaju da neto nije u redu:
if (!$greska) {
mail ([primalac], [tema], [tijelo_poruke], [zaglavlja]);
}
Izgleda ve kompliciranije, zar ne? Potom, emo prijei na dio koji je vazan za
odailjaoca poruke, gdje prvo kreiramo varijablu - niz:
$odasiljaoci = array ('adsoglasi.com','www.adsoglasi.com');
Gornjom linijom kreiramo niz u kome se nalaze nazivi domena sa kojih e biti
dozvoljeno izvravanje e-mail skripti. Nije bitno kojim redom navedete elemente niza,
a umesto naziva domena moete koristiti i IP adrese datih domena. Slijedi PHP kod
koji provjerava da li se odailjalac nalazi u naem nizu dozvoljenih odailjaoca ($
odasiljaoci):
$privremeni = explode("/",getenv("HTTP_REFERER"));
$brojac = 0;
while($brojac < count($odasiljaoci)){
if (ereg($odasiljaoci[$brojac], $privremeni[2])) {
$ispravno = "true";
}
$brojac++;
}
if ($ispravno != "true") { $autorizacija .= "neautoriziran "; }
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 28
Da vidimo to se tu zbiva:
Potencijalni poiljalac se ubacuje u niz "$privremeni[ ]".
Petljom provjeravamo poiljaoca, tako to uporeujemo domen iz varijable "$
privremeni[ ]" sa predefiniranim vrijednostima iz niza "$odasiljaoci[]".
Ukoliko se neki od domena iz niza "$odasiljaoci[]" poklopi sa prosljeenim
domenom, prolazi se kroz ovu "kontrolnu toku" i varijabli "$ispravno"
dodjeljuje se vrijednost "true".
Posljednja instrukcija u "if...then" instrukcija jednostavno popunjava varijablu
"$autorizacija" sa stringom "neautoriziran", u sluaju da neko koristi e-mail
formu sa drugog servera.
Ovdje emo se zaustaviti, te nastavljamo u slijedeem PHP prilogu.
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 29
}
}
}
return $sadrzaj;
}
$sadrzaj = parsiranje_formulara($HTTP_POST_VARS);
Ovaj kod nije previe teak. Ono to ovdje treba da dobijemo je varijabla "$sadrzaj"
koja je sainjena od svih ulaznih podatka koji su poslati PHP skripti na obradu . U
sluaju da imate vie ulaza, dobit ete listu slinu ovoj:
naziv_ulaza1: vrijednost1
naziv_ulaza2: vrijednost2
naziv_ulaza3: vrijednost3
I tako dalje. Pretpostavljate ta bi se desilo da imate samo jedan ulaz. PHP kod koji
uobliava sadraj vaih poruka je slijedei:
$sadrzaj .= "$naziv: $vrijednost [$brojac2]\n";
$sadrzaj .= "$naziv: $vrijednost\n";
Varijabla "$naziv" sadri nazive polja formulara, a varijabli "$vrijednost" se dodjeljuje
sadraj vezan za odgovarajue polje formulara. Prije nego to krenemo dalje, ispisat
emo subject e-mail poruke koja se upuuje administratoru:
$admin_subject = "Odgovor poslat putem PHP-a";
Ovdje emo se zaustaviti, a nastavit emo u slijedeem PHP prilogu. Ako do sada
imate utisak da je ovo previe komplicirano, i da je PHP kod koji predstavljamo
previe razveden, ne brinite. Na kraju ove teme predstaviemo vam cio kod, u jednoj
cjelini.
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 30
Kada je rije o upotrebi MySQL baza podataka, postoji vei broj dobro
dokumentiranih PHP funkcija koje e vam pomoi u uspostavljanju veze sa podacima.
Meutim, trebat e vam samo nekoliko ovih funkcija u cilju postizanja jednostavne
konekcije i selekcije nekih podataka:
mysql_connect - funkcija kojom ostvarujemo vezu sa MySQL serverom;
zahtjeva naziv hosta, korisniko ime i lozinku.
mysql_select_db - funkcija za izbor baze podataka od mnogobrojnih koje se
nalaze na MySQL serveru.
mysql_query - funkcija za postavljanje SQL instrukcija.
mysql_fetch_array - funkcija za smjetanje rezultata SQL upita u niz.
mysql_free_result - funkcija za oslobaanje resursa zauzetih trenutnom
konekcijom.
mysql_close - funkcija za prekid veze ka bazi podataka.
Ovo su osnovne funkcije koje vam trebaju za rad sa bazama podataka, a detalje o
ostalim funkcijama moete nai u odgovarajuem priruniku koji se nalazi na adresi
www.php.net/manual/.
U naem primjeru, pretpostavit emo da ste instalirali MySQL server, da ste kreirali
bazu podataka i da za datu bazu imate korisniko ime (username) i lozinku (password).
U toj bazi kreirajte tabelu "Proizvodi", koja e imati polja: "Naziv", "Tip" i
"Kolicina". Samu tabelu popunite sa podacima kao to su ovi dati na slici.
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 31
U ovoj toki smo "naredili" PHP parseru da se spoji na MySQL server i selektira bazu
podataka. Ako je sve u redu do ove toke, moete odaslati SQL upit i nadati se da e
vam se vratiti nekakav rezultat, tj. rezultirajui set slogova. Kreirat emo upit koji se
zasniva na tabeli "Proizvodi" (definirana u prethodnom prilogu), a koji treba da vrati
polja sa nazivima proizvoda, njihovim tipom i koliinom proizvoda, s tim da se podaci
poredaju po najveim koliinama. Kreirat emo varijablu koja e sadrati ovu
nau SQL instrukciju:
$sql = "SELECT Naziv, Tip, Kolicina
FROM Proizvodi
ORDER BY Kolicina DESC";
Potom emo kreirati varijablu koja e prihvatiti rezultate prethodnog upita, a koji e se
dobiti uz pomo mysql_query funkcije. Funkcija mysql_query poseduje dva
argumenta; konekciju i SQL varijablu, koje smo prethodno kreirali:
$sql_result = mysql_query($sql,$connection)
or die("Upit nije izvrsen");
Ovim bi trebalo da uspostavimo konekciju, selektiramo tabelu, postavimo upit i
smjestimo rezultate u varijablu. U slijedeem prilogu emo vidjeti kako rezultate upita
prikazati korisnicima.
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 32
Poto je osnovna svrha bilo kog upita prikaz i nekakva analiza podataka, smjestiemo
dobijene podatke u HTML tabelu, tj. prikazaemo rezultat u takvom obliku da moe da
ga iita bilo koji web browser. Da biste ovo odradili, slijedei HTML kd smjestite
ispred while petlje, kako biste "otvorili" tabelu i kreirali naslovni red tabele:
echo "<TABLE BORDER=1>";
echo "<TR>
<TH>Naziv proizvoda</TH>
<TH>Tip</TH>
<TH>Kolicina</TH>
</TR>
";
Nakon definiranja varijabli unutar while petlje, "odtampat emo" ih u tabeli:
echo "<TR>
<TD>$naziv_proiz</TD>
<TD>$tip_proiz</TD>
<TD>$kolicina</TD>
</TR>
";
Prema tome, konana while petlja izgledat e ovako:
while ($row = mysql_fetch_array($sql_result)) {
$naziv_proiz = $row["Naziv"];
$tip_proiz = $row["Tip"];
$kolicina = $row["Kolicina"];
echo "<TR>
<TD>$naziv_proiz</TD>
<TD>$tip_proiz</TD>
<TD>$kolicina</TD>
</TR>
";
}
Nakon zavretka petlje, slijedi i zatvaranje taga tabele:
echo "</TABLE>";
I konano, na kraju je potrebno da oslobodimo sve resurse zauzete izvravanjem upita,
i zatvorimo konekciju ka bazi podataka. Ako ovo ne uradimo, moemo izazvati
neeljeno "curenje" memorije ili sline resurs-probleme.
mysql_free_result($sql_result);
mysql_close($connection);
?>
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 33
baza podataka, a mogli smo na bilo koji sistem za upravljanje podacima. Ali, zato smo
izabrali ba MySQL i zato se ovaj sistem i koristi u najveem broju sluajeva?
MySQL predstavlja relacioni sistem za upravljanje bazama podataka (RSUBP) koji
omoguava da uvate podatke, da im pristupate i da ih organizirate na najbolji mogui
nain (ovo zadire u iroku temu zvanu "Organizacija podataka"). Pri tome, ovaj
RSUBP moe da slui u organizaciji podataka i to od nivoa obine liste podataka, pa
sve do velike kolekcije tabela sa milionskim brojem slogova. Inae, relacione baze
podataka su vrlo mona alatka koja osigurava da crpite informacije iz viestrukih
izvora i pri tome vrite njihovu komparaciju, kombiniranje i sumiranje radi dobijanja
prave informacije u bilo koje doba. Na primjer, moete dobiti jednostavnu listu
klijenata, ili iskombinirati klijente sa njihovim narudbinama i pozicijama koje su
naruili. Baze podataka osiguravaju potrebnu strukturu i organizaciju koja je potrebna
radi operacija za efikasan pristup podacima, ak i kada ovo podrazumjeva veliku
koliinu informacija i veliki broj tabela (entiteta).
Ipak, ta je to to MySQL ini tako posebnim:
MySQL je Open Source RSUBP. Dostupan je na Internetu i pri tome je
besplatan. Ovo je veliki kontrast drugim komercijalnim sistemima za baze
podataka (kao to su Oracle, MS SQL, Informix i sl.), kreiranih od strane velikih
kompanija, koji su pri tome veoma skupi. Meutim, za one koji ele da narue
MySQL sistem na CD-u, i pri tome prime odgovarajuu tampanu
dokumentaciju, veliki broj firmi osigurava ovu opciju za malu sumu (stotinjak
dolara). Pored toga, neke od ovih firmi nude i tehniku podrku i trening
kurseve.
Brzina. Svaki od sistema za baze podataka ima podruja u kojima se posebno
istie. Za MySQL, jedna od ovih podruja je brzina - iroko je priznato da su
odgovori ovog sistema bri nego kod drugih sistema. Upravo zbog brzine,
MySQL je sistem izbora za Internet aplikacije, gdje se zbog velikog saobraaja
zahtjeva velika brzina.
SQL-orijentacija. MySQL podrava standardni Structured Query Language
(SQL), najkorieniji jezik za definiranje i ekstrakciju podataka.
Lakoa upotrebe. Distribucija MySQL je relativno mali paket, koji ne zahtjeva
stotine i stotine megabajta kao drugi SUBP. Razvojna filozofija ovog sistema
fokusirana je na iroku i laku upotrebljivost, gdje se u paket ubacuju samo
neophodne funkcije. Ovo MySQL ini lakim za razumjevanje, lakim za
instaliranje, podeavanje i administraciju.
Portabilnost. MySQL moe da se pokrene na brojnim paltformama, a najvanije
su UNIX, Linux i Windows.
Rapidni razvoj. Suvremeni dodaci za MySQL ukljuuju podrku za transakcije,
replikaciju, tekstualno pretraivanje i RAID fajl-sisteme. Pored toga, moe se
ukljuiti i podrka za zakljuavanje na nivou sloga.
Interoperabilnost. MySQL moe se koristiti u kombinaciji sa velikim brojem
drugog softvera, koji je takoer besplatan. Ove alatke vam omoguavaju da na
lak nain iskoristite sve mogunosti MySQL-a.
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59
PHP - Uvod
Page 34
http://www.adsoglasi.com/html/php_mysql_prirucnik/php_mysql/
11.11.2007 23:32:59