Što je PHP ?
Osnove sintakse
Podržani tipovi
Varijable
Klase i objekti
Kontrolne strukture
Rad s mySQL bazom
Zaključak
7. RAD S BAZAMA PODATAKA (kratke upute)

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.

Prethodna Sljedeća