7.1. UVOD
Pri izradi web aplikacija, najčešće
je potrebno povezati aplikaciju s nekom bazom
podataka. PHP podržava više vrsta baza, no ja
ću Vam samo kratko prikazati kako najjednostavnije
povezati aplikaciju s mySQL bazom podataka.
7.2. mySQL BAZE PODATAKA
Dolje navedene funkcije omogućavaju
nam pristup MySQL serverima. Da bi ove funkcije
bile dostupne, potrebno je kompajlirati php sa
mysql podrškom koristeći --with-mysql .
7.2.1. mysql_connect
Otvara vezu prema mySQL serveru.
int
mysql_connect ([string hostname [:port] [:/path/to/socket]
[, string username [, string password]]])
Defaultni parametri koji se koriste
su: host:port = 'localhost:3306', username = ime
korisnika koji je vlasnik serverskog procesa i
password ="".
Primjer:
<html>
<head>
<title>Primjer ugradjenog koda</title>
</head>
<body>
<?php
$link = mysql_connect
("localhost", "username",
"secret")
or die ("Could not connect");
print ("Connected successfully");
mysql_close ($link);
?>
</body>
</html>
|
|
Vrlo je bitno da se svaki otvoreni
connection zatvori sa funkcijom mysql_close. Ako
to ne navedemo, veza će se zatvoriti tek nakon
izvršenog cijelog PHP programa.
7.2.2. mysql_select_db
Nakon što smo otvorili vezu s mySQL
serverom, potrebno je odabrati bazu podataka s
kojom ćemo raditi na serveru.
int mysql_select_db
(string database_name [, int link_identifier])
Vraća cijeli broj veći od nule, ako je sve ok,
inače vraća nulu.
mysql_select_db() postavlja trenutno
aktivnu bazu na trenutno otvorenom linku na server.
Ako nije naveden link u pozivu funkcije, koristi
se posljednji otvoreni.
7.2.3. mysql_query
Sad kad smo se povezali na server
i odabrali bazu s kojom ćemo raditi, potrebno
je izvršiti prvi upit nad bazom !
NAPOMENA: Za postavljanje
upita potrebno je detaljnije poznavati mySQL.
int mysql_query (string
query [, int link_identifier])
Funkcija vraća nulu ako je došlo
do greške, a ako je sve prošlo ok, onda vraća
cijeli broj različit od nule. Povratna vrijednost
nema veze s brojem redova koji su vraćeni, tako
da Vas to ne zbunjuje...
Evo primjera:
<html>
<head>
<title>Primjer ugradjenog koda</title>
</head>
<body>
<?php
$result =
mysql_query ("SELECT my_col FROM
my_tbl")
or die ("Invalid query");
?>
</body>
</html>
|
|
U varijabli $result se nalaze svi
rezultati našeg upita... Najčešce se $result varijabla
obrađuje foreach petljom kako bi obavili potrebne
radnje nad svim rezultatima. Nakon završenog rada
s $result-om, potrebno je osloboditi resurse naredbom
mysql_free_result($result);
Postoje još mnoge funkcije za rad
s mySQL-om, tu su prikazane samo osnovne, za sve
ostale konzultirajte PHP Manual koji je u rubrici
dodaci...
Slijedi još jedan konkretan primjer
koji koristi sve navedene funkcije i ispisuje
podatke.
Primjer:
<html>
<head>
<title>Primjer ugradjenog koda</title>
</head>
<body>
<?php
$veza
= mysql_connect('localhost','mladen','blablabla');
if (!$veza) die("Gre1ka: Ne mogu
se spojiti na server !");
$ok
= mysql_select_db('moja_baza');
if(!$ok) die("<BR> Gre1ka:
Ne mogu otvoriti bazu ! <BR>");
if (mysql_errno()) die("<BR>".mysql_errno().":
".mysql_error()."<BR>");
$upit="SELECT
* FROM tablica1 WHERE 1=1";
$rezultat_upita
= mysql_query($upit);
if (mysql_errno()) die("<BR>".mysql_errno().":
".mysql_error()."<BR>");
while($redak=mysql_fetch_array($rezultat_upita))
{
echo
$redak['PrviPodatak'],' '.$redak['DrugiPodatak'];
echo
<BR>;
}
mysql_free_result($rezultat_upita);
mysql_close($veza);
?>
</body>
</html>
|
|
Dakle, prvo otvaramo vezu na server,
potom odabiremo bazu na serveru, te izvršavamo
upit i rezultati se nalaze u $rezultat_upita.
Potom idemo redak po redak kroz $rezultat_upita
i ispisujemo redak po redak iz tablice1 u bazi
moja_baza.
Na kraju je potrebno osloboditi resurse koje smo
zauzeli pri dohvatu iz baze.
|