Kao sto vec znamo, svaki sajt (koji nije hardkodovan u HTML) korsiti databazu. A u ovom tutorialu cu vam detaljno pojasniti kako se ona koristi.
Za pocetak: Sta je MySQL?
MySQL je aplikacija koja korsiti Script Query Language i pomocu tog jezika ona manipulise podatcima. MySQL koristi vise "motora" (engine), za sada je InnoDB najpouzdaniji.
Cemu sluzi MySQL?
MySQL sluzi kako bi korisnik mogao da pise i cita odredjene podatke preko Script Query Language (SQL). Podatci koje se cuvaju u bazi su tekstualni sadrzaj.
Ok, mislim da je ovo bio dovoljan uvod. Sada da se bacimo na PHP.
Dakle, pre nego sto bilo sta zelimo da upisemo ili procitamo iz baze potrebno je konektovati se na nju.
U tutorialu cu vam pokazati mysql i mysqli.
Primer MySQL:
$connid = mysql_connect("IP servera na koji se kacimo", "korisnicko ime preko koga se logujemo", "lozinka"); //Ova funkcija sluzi za konekciju sa MySQL bazom
Funkcija mysql_connect ako uspe da se konektuje na bazu vraca ID konekcije u suprotnom vraca FALSE.
Sledeci korak je odabir baze na koju zelimo da se povezemo. To radimo sledecom funkcijom.
mysql_select_db("ime baze", $connid);// Ova funckija ce nas povezati sa zadatom bazom u konekciji $connid
Funkcija mysql_select_db ako je uspesno izabrala bazu vraca TRUE u suprotnom FALSE
A sada primer kako to treba da izgleda u kompletu:
$connid = mysql_connect("IP servera na koji se kacimo", "korisnicko ime preko koga se logujemo", "lozinka"); // Konektujemo se na bazu
if($connid){ //Proveravamo da li je konekcija uspesna
if(mysql_select_db("ime baze", $connid)){ // biramo bazu i proveravamo da li je baza uspesno odabrana
//ako jeste odradice ovo
return true;
}else echo mysql_error(); // a, ako nije, onda ce nam PHP ispisati gresku zbog koje nije baza odabrana.
}else {// u slucaju da konekcija nije bila uspesna
echo 'Doslo je do greske prilikom konekcije'; //PHP ce nam prikazati tekst
}
Dakle u ovome iznad smo se konektovali na bazu i izabrali koju zelimo da koristimo.
Sada MySQLi nacin. Ima male razlike, a to je da se baza bira u istoj komandi kada se konektujemo
$connid = mysqli_connect("IP Servera","Korisnicko Ime","Lozinka","ime baze");// sve u jednom
Ova funkcija vraca objekat koji predstavlja konekciju na MySQL server.
Provere za konekciju su malo drugacije nego u mysql_connect
A evo i primera:
$connid = mysqli_connect("IP Servera","Korisnicko Ime","Lozinka","ime baze");
if (mysqli_connect_errno($connid)){
echo 'Doslo je do greske prilikom konekcije: ' . mysqli_connect_error();// Prikazace nam tekst sa greskom
} else echo 'Konekcija uspesna'; // ovo ce se prikazati kada konekcija bude uspesna.
Dakle to je sve sto treba da znate za konekciju na bazu podataka. (naravno za pocetnike)
Idemo dalje sa koriscenjem.
Sledeci korak je SELECT funkcija SQL-a. To je klasican query, dakle koristi se funkcija mysql_query ili mysqli_query
Primer mysql_query:
//Nakon uspesne konekcije
$result = mysql_query('SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'Neka_vrednost\';', $connid);// ova zvezdica znaci da selektujemo sva polja iz tabele ako rezultat postoji.
mysql_query ima 2 tipa vracanja, u primeru gore ako je nadjeno sto sto trazimo vratice "resurse" koje dalje koristimo u mysql_fetch_assoc i mysql_num_rows (naravno ti resursi se mogu koristit i na ostalim mysql funkcijama koje obradjuju te objekte, samo sto ih u ovom tutorialu necemo koristi)
ili ce vratiti FALSE, u slucaju da imamo UPDATE, INSERT, DELETE itd onda se vraca samo TRUE ili FALSE.
Primer MySQLi:
$result = mysqli_query($connid, 'SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'neka_vrednost\';');
Funkcija vraca isto sto i mysql_connect.
Sada, treba uraditi proveru da li je kveri vrati zeljene podatke.
Primer MySQL:
if(mysql_num_rows($result)){
return true;
}else return false;
mysql_num_rows je funkcija koja broji broj "redova" vracenih iz baze zeljenim kverijem. Ako je taj broj 1 ili vise znaci da smo dobili nesto, u suprotnom zeljeni rezultat nije pronadjen
Primer MySQLi:
if(mysqli_num_rows($result){
return true;
}else return false;
Funkcija se ponasa isto kao i mysql_num_rows.
E sada, zelimo sacuvati vracene podatke u neku varijablu. Naglasavam da cu ovde prikazati primer ako ima vise od 1 rezultata.
Primer MySQL:
$datas = array();//ovde inicijalizujemo varijablu koja je "niz"
while($data = mysql_fetch_assoc($result)){// ovo je petlja koja ce da se odradjuje dokle god ima rezultata
$datas[] = $data; // Storujemo podatke iz varijable $data, u novi clan niza $datas
}
isti nacin se koristi i za MySQLi samo sto nije mysql_fetch_assoc vec mysqli_fetch_assoc
Sada da sastavimo sve to zajedno.
Primer MySQL:
$connid = mysql_connect("IP servera na koji se kacimo", "korisnicko ime preko koga se logujemo", "lozinka");// Konektujemo se
if($connid){ // Proveravamo da li je konekcija uspesna
if(mysql_select_db("ime baze", $connid)){ // Biramo bazu koju koristimo
$result = mysql_query('SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'Neka_vrednost\';', $connid); // Odradjujemo "kveri"
if(mysql_num_rows($result)){ // Proveravamo da li je "kveri" vratio neke podatke
$datas = array(); // Inicijalizujemo varijablu koja je niz
while($data = mysql_fetch_assoc($result)){ // Vrtimo kroz sve podatke koji su vraceni kverijem
$datas[] = $data; // Dodajemo trenutne podatke u niz ostalih podataka
}
}
}else echo mysql_error(); // Prikazujemo gresku zbog cega odabir baze nije uspesan
}else {
echo 'Doslo je do greske prilikom konekcije'; // Prikazujemo tekst koji nam naglasava da konekcija sa bazom i nije bas najbolje prosla
}
Primer MySQLi:
$connid = mysqli_connect("IP Servera","Korisnicko Ime","Lozinka","ime baze"); // Konektujemo se i biramo bazu
if (mysqli_connect_errno($connid)){ // Proveravamo da li ima greske u konekciji
echo 'Doslo je do greske prilikom konekcije: ' . mysqli_connect_error();// Prikazace nam tekst sa greskom
} else{
$result = mysqli_query($connid, 'SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'neka_vrednost\';'); // Odradjujemo kveri
if(mysqli_num_rows($result){ // Proveravamo da li je kveri vratio neke rezultate
$datas = array();//ovde inicijalizujemo varijablu koja je "niz"
while($data = mysqli_fetch_assoc($result)){// ovo je petlja koja ce da se odradjuje dokle god ima rezultata
$datas[] = $data; // Storujemo podatke iz varijable $data, u novi clan niza $datas
}
}
}
Hvala na citanju, sledeci tutorial INSERT, DELETE, UPDATE, DROP, TRUNCATE
Jedan dodatak i opaska:
$result = mysql_query('SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'Neka_vrednost\';', $connid); // Odradjujemo "kveri"
moras prvo provjerit jel postoji $result, tj jel vraca ikakvu vrijednost, ako ne, onda je sintaksna pogreska, num rows samo gleda jel ima redova, a neces s istim otkriti jel ima sintakse greske...
znaci ovako:
$result = mysql_query('SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'Neka_vrednost\';', $connid); // Odradjujemo "kveri
if(!$result) die("Mysql sintaksna pogreska");
ff(mysql_num_rows($result)) {/*Dalje vec sta ide*/}
Citat: Dude poslato Jun 04, 2013, 16:38:20 POSLE PODNE
Jedan dodatak i opaska:
$result = mysql_query('SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'Neka_vrednost\';', $connid); // Odradjujemo "kveri"
moras prvo provjerit jel postoji $result, tj jel vraca ikakvu vrijednost, ako ne, onda je sintaksna pogreska, num rows samo gleda jel ima redova, a neces s istim otkriti jel ima sintakse greske...
znaci ovako:
$result = mysql_query('SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'Neka_vrednost\';', $connid); // Odradjujemo "kveri
if(!$result) die("Mysql sintaksna pogreska");
ff(mysql_num_rows($result)) {/*Dalje vec sta ide*/}
Slazem se, nisam razmisljao o tome dok sam pisao :)