NAVIGACIJA |
|||||||||
MySQL Funkcije
mysql_connect() - upostavlja vezu
sa MySQL serverom
Format:
mysql_connect($host[:$port][$socket_path],$user[,$pass])
Uspostavlja vezu sa MySQL serverom. Dovoljno je da navedete i samo $host, $user i $pass (ako $user ima definisan password). Dosta retko je potrebno upisati $port odnosno $socket_path. Takodje se može mysql_connect() proširiti funkcijom die. Funkcija die() koristi se za prekidanje skripta i "štampanje" poruke o grešci ukoliko prethodna funkcija je neuspešna (u ovom slučaju, ako konekcija nije uspostavljena).
PRIMER:
<?php $host = "localhost"; $user = "ana"; $pass = "pass"; $x = mysql_connect($host, $user, $pass); // ili $x = mysql_connect($host, $user, $pass) or die("Veza nije mogla biti uspostavljena."); //ili ako se podaci o host-u sa SUBP, korisniku, lozinci dobijaju //preko formulara iz polja: hostname, username, password $formhost = $_POST['hostname']; $formuser = $_POST['username']; $formpass = $_POST['password']; $x = mysql_connect($formhost, $formuser, $formpass) or die("Veza nije mogla biti uspostavljena."); ?> |
mysql_close() - gasi vezu sa
MySQL serverom
Format:
mysql_close($veza)
Gasi vezu sa serverom koju ste uspostavili koristeći mysql_connect
PRIMER:
<?php $x = mysql_connect ($host, $user, $pass); ## korisnicki iskaz $y = mysql_close($x); // Rezultat je: veza sa serverom je prekinuta ?> |
mysql_pconnect() - upostavlja
trajnu vezu sa MySQL serverom
Format:
mysql_pconnect($host[:$port][$socket_path],$user[,$pass])
pri uspostavljanju veze, iskaz prvo trazi postojecu vezu, i ako veza postoji, nece novu uspostavljati
mysql_select_db() - selektuje
MySQL bazu
Format:
mysql_select_db($baza[,$veza])
Selektuje MySQL bazu. Ako $veza nije definisana, koristi se trenutna aktivna veza.
PRIMER:
<?php $x = mysql_connect($host,$user,$pass); $y = mysql_select_db($baza); // Rezultat je: baza je odabrana ?> |
mysql_query() - šalje
MySQL iskaz MySQL serveru
Format: mysql_query($iskaz[,$veza])
Šalje MySQL iskaz MySQL serveru. Iskaz se može proširiti sa die
Vidite i: mysql_result
PRIMER:
<?php
$naziv=$_POST['naziv']; $oblast=$_POST['oblast'];
?> |
mysql_result() - vraća
podatke iz rezultata
Format:
mysql_result ($rezultat,$broj_reda[$kolona])
Vraća podatke iz rezultata, i to rezultate određenog reda. Ovaj iskaz je jedan od starijih, i dosta je sporiji od
mysql_fetch_object.
PRIMER:
<?php $x = mysql_query("SELECT * FROM tabela"); for($i=0; $i<mysql_num_rows($x); $i++) { $id = mysql_result($x,$i,0); echo "$imena | "; } mysql_free_result($x); /* Rezultat je: sadržaj tabele (na primer imena odvojena sa pipe "|") */ ?> |
mysql_num_fields() - vraća
broj kolona u rezultatu
Format:
mysql_num_fields($rezultat[,$veza])
Vraća broj kolona u rezultatu. Ako $veza nije definisana, koristi se trenutna aktivna veza. Može se korisiti i mysql_listtables (stariji iskaz).
PRIMER:
<?php $x = mysql_query("SELECT * FROM tabela"); echo mysql_num_fields($x); // Rezultat je: 15 (jer se na primer 15 polja (kolona) nalazi u tabeli ?> |
mysql_num_rows() - vraća
broj redova u rezultatu
Format:
mysql_num_rows($rezultat[,$veza])
Vraća broj redova u rezultatu. Ako $veza nije definisana, koristi se trenutna aktivna veza. Ova iskaz funkcioniše uz SQL iskaz SELECT. Za ostale iskaze kao što su INSERT, UPDATE i sl. koristiti mysql_affected_rows.
PRIMER:
<?php $x = mysql_query("SELECT ime, prezime FROM tabela"); echo mysql_num_rows($x); // Rezultat je: 212 (jer se toliko redova nalazi u tabeli) ?> |
mysql_affected_rows() -
vraća broj redova modifikovanih poslednjim iskazom
Format:
mysql_affected_rows($rezultat)
Vraća broj redova tabele, koje su modifikovane poslednjim isazom. Dakle, funkcija ne reaguje na SELECT iskaz, nego samo na iskaze koje modifikuju tabelu (INSERT, UPDATE i sl.). Ako je poslednji query bio DELETE bez WHERE iskaza, i tim iskazom je ispranjena čitava tabela, sto znaci da su svi redovi tabele modifikovani ovom komadnom, mysql_affected_rows() će vratiti kao rezultat 0 (nula), jer je tabela prazna.
PRIMER:
<?php $z="DELETE FROM tabela WHERE IME ='{$_POST['naziv']}' AND OBLAST = '{$_POST['oblast']}' "; $x = mysql_query($z); echo mysql_affected_rows(); // Rezultat je: broj redova u kojima se nalazilo zadato ime i oblast ?> |
mysql_change_user() - menja
korisnika aktivne mysql konekcije
Format:
mysql_change_user ($user, $pass[,$db]);
Ako ste drugi korisnik, morate uspostaviti totalno novu vezu sa bazom ili prekinuti prvu vezu, i ponovo se konektovati na bazu koristeći nove podatke. Ovaj iskaz omogućuje da u trenutno aktivnoj vezi sa MySQL bazom promenite korisnika ($user). To je veoma korisno ako na primer za izvršavanje nekog iskaza trebaju veća prava od onih koje poseduje trenutni korisnik.
PRIMER:
<?php $user = "root"; $pass = "pass"; $x = mysql_change_user ($user, $pass); if ($x) { ## korisnicki iskaz } $y = mysql_change_user ($stari_user, $stari_pass); /* Rezultat je: iskaz će biti izvršen koristeći prava novog korisnika */
?> |
mysql_create_db() - kreira MySQL
bazu
Format:
mysql_create_db($db[,$veza])
Kreira bazu na MySQL serveru. Definisanje $veze (mysql_connect ) nije obavezno. Moguće je koristiti i mysql_createdb (starija iskaz).
PRIMER:
<?php $x = mysql_connect($host,$user,$pass); $y = mysql_create_db("PHP_matf",$x]); // Rezultat je: baza sa imenom PHP_matf je kreirana. ?> |
mysql_data_seek() - pristup do
određenog dela rezultata iz MySQL baze
Format:
mysql_data_seek($rezultat,$broj_vrste)
Funkcioniše na slican nacin kao iskaz mysql_fetch_object. mysql_data_seek() pomera interni pokazivac na zadatu vrstu rezultata MySQL upita. Posle poziva funkciji mysql_fetch_row() kao rezultat ce se dobiti zadata vrsta. $broj_vrste je u intervalu od 0 domysql_num_rows() - 1. No, ako rezultat upita je prazan skup (mysql_num_rows() == 0), onda poziv mysql_data_seek() sa vrednoscu $broj_vrste postavljenom 0 ce vratiti FALSE.
PRIMER:
<?php $rezultat = mysql_query("SELECT * FROM tabela"); mysql_data_seek($rezultat,4); $red = mysql_fetch_row($rezultat); echo $red[0]; // Rezultat je: 4. red dobijenog rezultata iz tabele ?> |
mysql_db_query() - šalje MySQL
query za određenu bazu
Format:
mysql_db_query($baza,$query[,$veza])
Funkcionise na isti nacin kao
mysql_query, samo sto za ovaj iskaz morate navesti i ime baze. Koristi se ako morate da pregledate podatke iz više baza. Može se koristiti i mysql (stariji iskaz). Ako $veza nije definisana, iskaz koristi trenutno aktivnu vezu.
PRIMER:
<?php mysql_db_query("PHP_net","SELECT * FROM tabela"); /* Rezultat je: selektovano je sve iz tabele tabela iz baze PHP_net. Dalje se može ovaj rezultat pomocu mysql_fetch_array, mysql_fetch_row, mysql_fetch_object obraditi */ ?> |
mysql_drop_db() - Brise MySQL
bazu
Format:
mysql_drop_db($db[,$veza])
Brise bazu na MySQL serveru. Ako $veza nije definisana, onda se koristi trenutno aktivna veza.
Vidite i: mysql_create_db
PRIMER:
<?php $x = mysql_drop_db("PHP_net"); if ($x) { echo "Baza PHP_net je obrisana"; } // Rezultat je: Baza PHP_net je obrisana (ako je iskaz uspeo) ?> |
mysql_errno() - vraća
numericku vreednost error poruke poslednje iskaza
Format:
mysql_errno([$veza])
Vraća numericku vreednost error poruke poslednje MySQL iskaza. Ako $veza nije definisana, koristi se trenutno aktivna veza. Koristi SE I u kombinaciji sa mysql_error
PRIMER:
<?php $db = mysql_select_db ($baza); echo mysql_errno().": ".mysql_error(); // Rezultat je: 1046: No Database Selected ?> |
mysql_error() - vraća tekst
error poruke poslednjeg iskaza
Format:
mysql_error([$veza])
Vraća tekst error poruke poslednjeg MySQL iskaza. Ako $veza nije definisana, koristi se trenutno aktivna veza. Koristi se u kombinaciji sa mysql_errno
PRIMER:
<?php $db = mysql_select_db ($baza); echo mysql_errno().": ".mysql_error(); // Rezultat je: 1046: No Database Selected ?> |
mysql_fetch_array() - stavlja
rezultat iz baze u niz
Format:
mysql_fetch_array($rezultat[,$array_vrsta])
PRIMER:
<?php $x = mysql_query("SELECT ime, prezime FROM tabela"); while ($red = mysql_fetch_array($x)) { echo $red['ime']." ".$red['prezime']; // ili echo $red[0]." ".$red[1]; } mysql_free_result($x); // Rezultat je: sva imena i prezimena iz tabela tabela ?> |
mysql_fetch_assoc() - stavlja rezultat
iz baze u asocijativni niz
Format:
mysql_fetch_assoc($rezultat)
Ova iskaz ima istu funkciju kao mysql_fetch_array
PRIMER:
<?php $x = mysql_query("SELECT ime, prezime FROM tabela"); while ($red = mysql_fetch_assoc($x)) { echo $red['ime']." ".$red['prezime']; } mysql_free_result($x); // Rezultat je: sva imena i prezimena iz tabela tabela ?> |
mysql_fetch_field() - vraća
informacije o jednoj koloni u obliku objekta
Format:
mysql_fetch_field($rezultat)
Vraća informacije o jednoj koloni u obliku objekta. Mogući rezultati u objektu su:
· name - ime kolone
· table - ime tabele
· max_length - maksimalna dužina kolone
· not_null - 1, ako kolona može biti null
· primary_key - 1, ako je kolona primarni kljuc (primary key)
· unique_key - 1, ako je kolona jedinstveni kljuc (unique key)
· multiple_key - 1, ako je kolona nije jedinstveni kljuc (non-unique key)
· numeric - 1, ako je kolona ima numericku vreednost
· blob - 1, ako je kolona tipa blob
· type - tip kolone
· unsigned - 1, ako je kolona unsigned
· zerofill - 1, ako je kolona zero-filled
PRIMER:
<?php // php.net primer $x = mysql_query("SELECT * FROM tabela"); while ($i < mysql_num_fields($x)) { echo "Informacije za kolonu $i:<br />n"; $meta = mysql_fetch_field($x); if (!$meta) { echo "Nema informacija<br />n"; } echo "<PRE> blob: $meta->blob max_length: $meta->max_length multiple_key: $meta->multiple_key name: $meta->name not_null: $meta->not_null numeric: $meta->numeric primary_key: $meta->primary_key table: $meta->table type: $meta->type unique_key: $meta->unique_key unsigned: $meta->unsigned zerofill: $meta->zerofill </PRE>"; $i++; } mysql_free_result ($x); /* Rezultat je: gore navedene informacije o svi kolonama u tabeli tabela npr: Informacije za kolonu : blob: 0 max_length: 2 multiple_key: 0 name: I_SIF not_null: 1 numeric: 1 primary_key: 1 table: tabela type: int unique_key: 0 unsigned: 0 zerofill: 0 Informacije za kolonu 1: blob: 0 max_length: 35 multiple_key: 0 name: ime not_null: 1 numeric: 0 primary_key: 0 table: tabela type: string unique_key: 0 unsigned: 0 zerofill: 0 Informacije za kolonu 2: blob: 0 max_length: 50 multiple_key: 0 name: prezime not_null: 1 numeric: 0 primary_key: 0 table: tabela type: string unique_key: 0 unsigned: 0 zerofill: 0 ... */ ?> |
mysql_fetch_lengths() -
vraća dužinu svakog polja u rezultatu u obliku niza
Format:
mysql_fetch_lengths($rezultat)
Vraća dužinu svakog polja u rezultatu u obliku skalarnog niza.
Vidite i: mysql_fetch_object
PRIMER:
<?php $x = mysql_query("SELECT * FROM tabela"); while($red = mysql_fetch_row($x)) { $dužina = mysql_fetch_lengths($x); echo "$red[1] ($dužina[1])<br />n"; } mysql_free_result($x); // Rezultat je: sve dužine sa imenima Ana (3) Marija (6) Sara (4) ... */ ?> |
mysql_fetch_object() - stavlja
rezultat iz baze u objekt
Format:
mysql_fetch_object($rezultat[,$vrsta_objekta])
Stavlja rezultat iz baze u objekt. Sve ostalo funkcionise na isti nacin kao kod mysql_fetch_array
PRIMER:
<?php $x = mysql_query("SELECT ime, prezime FROM tabela"); while ($red = mysql_fetch_array($x)) { echo $red ->ime; echo $red ->prezime; } mysql_free_result($x); // Rezultat je: sva imena i prezimena iz tabela tabela ?> |
mysql_fetch_row() - stavlja
rezultat iz baze u skalarni niz
Format:
mysql_fetch_row($rezultat)
Funkcionise na isti nacin na mysql_fetch_array, samo sto rezultat stavlja u skalarni niz.
PRIMER:
<?php $x = mysql_query("SELECT ime, prezime FROM tabela"); while ($red = mysql_fetch_row($x)) { echo "Ime: ".$red[0]." - Prezime: ".$red[1]."<br />"; } mysql_free_result($x); // Rezultat je: sva imena i prezimena iz tabela tabela ?> |
mysql_field_flags() - vraća
dodatne informacije u vezi određene kolone
Format:
mysql_field_flags($rezultat,$kolona)
Vraća dodatne informacije u vezi određenog polja u rezultatu, kao što su: "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment", "timestamp".
PRIMER:
<?php $x = mysql_query("SELECT I_SIF, prezime FROM tabela"); echo mysql_field_flags($x,0); // Rezultat je: not_null primary_key ?> |
mysql_field_name() - vraća
ime određene kolone
Format:
mysql_field_name($rezultat,$broj_kolone)
Vraća ime određene kolone na osnovu rednog broja.
PRIMER:
<?php $x = mysql_query("SELECT * FROM tabela"); for ($i=0; $i<mysql_num_fields($x); $i++) { echo mysql_field_name($x,$i)." | "; } /* Rezultat je: sva polja iz tabele npr. I_SIF | ime | prezime | */ ?> |
mysql_field_len() - vraća
dužinu određene kolone
Format:
mysql_field_len($rezultat,$kolona)
Vraća dužinu određene kolone. Moguće je koristiti i mysql_fieldlen (stari iskaz).
PRIMER:
<?php $x = mysql_query("SELECT ime, prezime FROM tabela"); for($i=0; $i<mysql_num_fields($x); $i++) { echo mysql_field_len($x,$i)." "; } // Rezultat je npr: 50 100 ?> |
mysql_field_seek() - pristupa u
određenu kolonu rezultata
Format:
mysql_field_seek($rezultat,$kolona)
Pristupa u određenu kolonu rezultata, tako da
mysql_fetch_field može čitati rezultat iz te kolone bez zadavanja broja kolone.
PRIMER:
<?php $x = mysql_query("SELECT main_id, ime, prezime FROM tabela"); mysql_field_seek($x,2); $red = mysql_fetch_field($x); echo $red->prezime; // Rezultat je: prezime // ?> |
mysql_field_table() - vraća
ime tabele u kojoj se nalazi određena kolona
Format:
mysql_field_table($rezultat,$kolona)
Vraća ime tabele u kojoj se nalazi određena kolona.
Moguće je koristiti i mysql_fieldtable .
PRIMER:
<?php $x = mysql_query("SELECT ime, prezime FROM tabela"); echo mysql_field_table($x,1); // Rezultat je: tabela ?> |
mysql_field_type() - vraća
tip određene kolone iz rezultata
Format:
mysql_field_type()
Vraća tip određene kolone iz rezultata. Tip može biti: "int", "real", "string", "blob" itd.
PRIMER:
<?php $x = mysql_query("SELECT main_id, prezime FROM tabela"); for($i=0; $i<mysql_num_fields($x); $i++) { echo mysql_field_type($x,$i).", "; } // Rezultat je: int, string ?> |
mysql_free_result() - brise
rezultat (oslobadja memoriju)
Format:
mysql_free_result($rezultat)
Oslobadja memoriju od rezultata MYSQL upita. Ovaj iskaz nije obavezan, jer se memorija ionako prazni kada skript zavrsi svoj rad, ali ukoloko su upiti veliki i mislite da mogu usporiti rad, koristite mysql_free_result. Takodje se koristi mysql_freeresult (stariji iskaz).
PRIMER:
<?php $x = mysql_query("SELECT ime, prezime FROM tabela"); // korisnički iskaz mysql_free_result($x); // Rezultat je: $x je izbrisan iz memorije ?> |
mysql_insert_id() - vraća ID
poslednjeg SQL INSERT iskaza
Format:
mysql_insert_id([$veza])
Vraća ID poslednjeg SQL INSERT iskaza. ID je polje definisano u tabeli sa auto_increment. Vraća 0, ako kolona ne kreira sledeci broj pomocu auto_increment. Za MySQL iskaza je puno pogodnije koristiti internu MySQL iskaz LAST_INSERT_ID()
na primer:
INSERT ...
WHERE main_id= LAST_INSERT_ID().
PRIMER:
<?php mysql_query("INSERT INTO tabela VALUES (1965, 10000)"); $poslednji_id = mysql_insert_id(); echo $poslednji_id; // Rezultat je: 125 ?> |
mysql_list_dbs() - vraća listu
svih baza na MySQL serveru
Format:
mysql_list_dbs([$veza])
Vraća listu svih baza na MySQL serveru.
PRIMER:
<?php $x = mysql_connect($host, $user, $pass); $y = mysql_list_dbs($x); while ($red = mysql_fetch_array($y)) { echo $red ->Database." | "; } mysql_free_result($x); // Rezultat je: sve baze na serveru ?> |
mysql_list_fields() - vraća
informacije o tabeli
Format:
mysql_list_fields($baza,$tabela[,$veza])
Vraća informacije, odnosno imena kolona iz tabele. Ako $veza nije definisana, koristi se trenutna aktivna veza.
PRIMER:
<?php $x = mysql_list_fields($baza, $tabela); $kolone = mysql_num_fields($x); for ($i = 0; $i < $kolone; $i++) { echo mysql_field_name($x, $i) . " | "; } /* Rezultat je: imena svih polja (kolona) iz baze na primer: main_id | ime | prezime | ... */ ?> |
mysql_list_tables() - vraća
listu tabela određene MySQL baze
Format:
mysql_list_tables($baza[,$veza])
Vraća listu tabela određene MySQL baze. Ako $veza nije definisana, koristi se trenutna aktivna veza. Može se korisiti i mysql_listtables (starija iskaz).
Vidite i: mysql_tablename
PRIMER:
<?php $x = mysql_list_tables($baza); for($i=0; $i<mysql_num_rows($x); $i++) { echo mysql_tablename($x, $i) . " | "; } // Rezultat je: lista svih tabela u bazi ?> |
mysql_tablename() - vraća
ime tabele iz rezultata
Format:
mysql_tablename($rezultat,$broj)
Vraća ime tabele koristeći rezultat od mysql_list_dbs
PRIMER:
<?php $x = mysql_list_tables($baza); for($i=0; $i<mysql_num_rows($x); $i++) { echo mysql_tablename($x, $i) . " | "; } // Rezultat je: lista svih tabela u bazi ?> |