PHP MySQL Skripta 2011

Embed Size (px)

Citation preview

SKRIPTA IZ PREDMETA INTERNET TEHNOLOGIJE

Rad sa bazama podataka u PHP-u

SADRAJ1 2 UVOD.............................................................................................................................3 PHP i rad sa bazama podataka......................................................................................5 2.1 PhpMyAdmin............................................................................................................6 Kreiranje nove baze..........................................................................................7 Korienje SQL naredbi za kreiranje baze......................................................11 Izvoz podataka................................................................................................11 Uvoz podataka................................................................................................12 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.3 3 3.1 3.2 3.3 3.4 3.5 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 5 6

PHP, MySQL i korienje naih slova....................................................................13 Pregled najee korienih SQL upita..................................................................14 Konekcija na MySql server.....................................................................................16 Ubacivanje podataka u bazu (naredba INSERT INTO)..........................................18 itanje podataka iz baze (naredba SELECT).........................................................20 Brisanje podataka (naredba DELETE)...................................................................23 Izmena postojeih podataka (naredba UPDATE)...................................................26 Konekcija na MySql server.....................................................................................35 Ubacivanje podataka u bazu (naredba INSERT INTO)..........................................36 itanje podataka iz baze (naredba SELECT).........................................................38 Brisanje podataka (naredba DELETE)...................................................................40 Izmena postojeih podataka (naredba UPDATE)...................................................43 Rad sa transakcijama.............................................................................................51 Pripremljeni upiti.....................................................................................................53

Ekstenzija php_mysql...................................................................................................16

Ekstenzija php_mysqli..................................................................................................35

Ekstenzija php_pdo......................................................................................................55 PHP i ODBC.................................................................................................................60

Indeks primera......................................................................................................................61 Indeks tabela........................................................................................................................62 Indeks slika..........................................................................................................................62 Indeks slika

2

1 UVODTroslojna arhitektura predstavlja tip klijent-server arhitekture u kojoj su korisniki interfejs, procesi poslovne logike i pristup podacima, projektovani i upravljani kao nezavisni moduli. Osnovne komponente (slojevi) ove arhitekture su: Klijentski (prezentacioni) sloj Sloj poslovne (aplikativne) logike Sloj podataka

Slika 1: Troslojna arhitektura web aplikacija

Preko PHP-a kao skriptnog jezika na serverskoj strani, realizuje se najvei deo poslovne logike aplikacije. Podaci vezani za aplikaciju se mogu skladititi u obinom tekstualnom fajlu, iz kojeg se pomou PHP mogu itati i upisivati. Meutim, ako je u pitanju ozbiljnija aplikacija, neophodno je koristiti relacione baze podataka. Najee, ovo znai da e se korsititi server baze podataka koji podraava SQL (Structured Query Language) specifikaciju. SQL je standardni programski jezik za pristup i manipulaciju podacima iz relacionih baza podataka i podran je od strane svih servera relacionih baza podataka. U relacionim bazama podaci su skladiteni preko niza tabela. Svaka tabela sadri kolone koje opsiuju atribute podataka, a svaki red je instanca podataka. Relational Data Base Management Systems (RDBMS), odnosno sistemi za upravljanje relacionim bazama podataka su se u praksi pokazali kao najbolji nain upravljanja podacima. 3

Strane kreirane u nekom skriptnom jeziku serverske strane (npr. PHP) koje koriste neki izvor podataka (npr. podatke iz MySQL baze) nazivaju se dinamike veb strane. One se zasnivaju na principu da se HTML kod ne stvara sve dok korisnik ne poeli da vidi veb stranicu. To dinamiko stvaranje stranica omoguuje da one budu prilagoene korisnikovim zahtevima, da zavise od prethodnih akcija korisnika, od vremena i mesta kad je pristupio lokaciji, od njegovog identiteta i specifinih potreba.

1. Pretraiva alje HTTP zahtev koji sadri URL

Korisnik 6. Web server stranu alje do pretraivaa 2. Web server aktivira aplikacioni server

5. HTML strana sa traeniminformacijama Web server 4. Povratna informacija

Aplikacioni server 3. Aplikacioni server alje zahteve i instrukcije do database servera

Database server

Slika 2: Pristup dinamikim veb stranama

Pristup dinamikim veb stranicama tee po sledeem redosledu: 1. Veb ita alje HTTP zahtev veb serveru. HTTP zahtev sadri URL sa traenom stranicom. 2. Veb server prihvata klijentski zahtev i aktivira aplikativni server. Aplikativni server je softver koji moe i ne mora biti instaliran na istom raunaru kao i veb server. 3. Na osnovu informacija primljenih u klijentskom zahtevu, aplikativni server prosleuje upit ka serveru baze podataka. 4. Na osnovu dobijenog zahteva, na serveru baze podataka izvrava se odgovarajui upit. Rezultat obrade alje se nazad do aplikativnog servera 5. Aplikativni server formira HTML stranicu u koju ugrauje informacije dobijene iz baze podataka. HTML stranica prosleuje se veb serveru. 6. Veb server alje HTML stranicu do klijentskog raunara. 4

1 PHP i rad sa bazama podatakaPHP podrava API-je za pristup svim poznatim bazama podataka. Programski jezik PHP se u praksi najee koristi sa MySQL bazom podataka. MySQL je efikasan server za upravljanje bazama podataka. Predstavlja opensource reenje sa odlinim performansama. Programski jezik PHP je modularan, to znai da se sastoji iz jezgra (core) i ekstenzija, koje se po potrebi mogu ukljuiti. Pristup bazi podataka u programskom jeziku PHP ostvaruje se pomou odgovarajuih PHP ekstenzija, koje su najee podrazumevano ukljuene. Bazi je mogue pristupiti na vie naina. Poto se najvie koristi MySQL server, u daljem tekstu bie razmatran pristup ovoj bazi. MySQL bazi je mogue pristupiti korienjem ekstenzije php_mysql, php_mysqli ili php_pdo_mysql. Takoe, PHP ima podrku za povezivanje na bilo koji sistem za upravljanje podacima pomou ODBC drajvera. Navedene ekstenzije je mogue ukljuiti ili iskljuiti konfigurisanjem php.ini fajla ili izborom opcije PHP PHP extensions kod WAMP servera (slika 2).

Slika 3: PHP ekstenzije kod WAMP servera

5

Pre pojave verzije 5 PHP-a, MySql bazi moglo se jedino pristupiti korienjem odgovarajuih funkcija ugraenih u php_mysql ekstenziju. Ovaj pristup se i dalje koristi, ali je danas ve prevazien, zato to se bazi pristupalo korienjem proceduralnih naredbi (nije postojala objektno-orijentisana podrka), nije bilo podrke za jednostavnu promenu kodnog rasporeda baze (bez eksplicitnog poziva odgovarajuih SQL naredbi nije bio mogu korektan prikaz srpskih ili bilo kojih drugih UTF-8 karaktera), nije bilo podrke za pripremljene SQL naredbe (prepared statements) i transakcije nisu bile podrane. Pojavom verzije 5 programskog jezika PHP, dodate su dve nove ekstenzije za pristup MySQL bazi. To su php_mysqli (MySql Improved) i php_pdo (PHP DATA OBJECTS). Obe ekstenzije podravaju objektno-orijentisan pristup bazi. Dok ekstenzija php_mysqli slui iskljuivo za pristup MySql bazi podataka, php_pdo predstavlja univerzalnu ekstenziju za pristup bilo kom podranom serveru baze podataka (preduslov je da postoji odgovarajui drajver za datu bazu). U tabeli 1 nalazi se uporedni prikaz navedene tri ekstenzije: Verzija PHP-a u kojoj se prvi put pojavljuje Ukljuena u PHP verziji 5.x Jo uvek se razvija Preporuena ekstenzija od strane MySQL-a Podrava razliite kodne rasporede Podrava pripremljene upite na serverskoj strani Podrava pripremljene upite na klijentskoj strani Podrava skladitenje procedura Podrava izvravanje vie upita odjednom Podrava sve MySQL 4.1+ funkcionalnosti php_mysql 3.0 da ne ne ne ne ne ne ne ne php_mysqli 5.0 da da da (najbolja opcija) da da ne da da da php_pdo_mysql 5.0 da da da da da da da Uglavnom da Uglavnom da

Tabela 1: Uporedni prikaz PHP ekstenzija za rad sa MySQL bazom

Postoji etiri osnovne operacije nad bazom podataka, odnosno nad perzistentnim skladitem podataka. To su operacija kreiranja podataka (create), operacija itanja podataka (read), operacija auriranja podataka (update) i operacija brisanja podataka (delete). U poslovnim aplikacijama, uvek se koriste sve navedene operacije. U literaturi su one esto oznaene nazivom crud (create, update, update, delete).

1.1 PhpMyAdminKao alat za jednostavno upravljanje MySQL bazom podataka, esto se koristi aplikacija PhpMyAdmin. U pitanju je opensource veb aplikacija napisana u programskom jeziku PHP, koja omoguava kreiranje novih baza podataka, izmenu postojeih baza, rad sa tabelama, pregled, unos, izmenu i brisanje podataka, kao i izvravanje SQL upita. WAMP server, kao i veina kombinovanih Apache PHP MySQL reenja, ukljuuju PhpMyAdmin aplikaciju. Ukoliko se koristi WAMP server, ovoj aplikaciji se pristupa pomou adrese http://localhost/phpmyadmin/ ili jednostavnim klikom na ikonicu WAMP-a i izborom opcije PhpMyAdmin.

6

Na slici 3 prikazan je interfejs aplikacije PhpMyAdmin. Sa leve strane nalazi se spisak postojeih baza podataka. Na poetnoj strani je mogue kreirati novu bazu korienjem opcije Create New Database. Isto je mogue uraditi izborom opcije Databases. Korienjem opcije Privileges mogue je kreirati korisnike MySQL baze, kojima je mogue dodeliti privilegije izvravanja odreenih operacija nad bazama.

Slika 4: PhpMyAdmin

1.1.1 Kreiranje nove bazeIzborom opcije Databases mogue je kreirati novu bazu podataka. Na slici 4 prikazana je forma za dodavanje nove baze.

Slika 5: Kreiranje nove baze

Izborom odgovarajue opcije u padajuoj listi potrebno je izabrati kodni raspored baze. Za pravilan prikaz svih karaktera (pa i srpskih slova), trebalo bi izabrati opciju utf8_unicode_ci. U polje za unos teksta trebalo bi uneti eljeni naziv baze podataka. Primer 1: Kreiranje nove baze podataka (PhpMyAdmin) Za kreiranje nove baze podataka sa nazivom bazanovosti, u ovo polje treba uneti bazanovosti. Ova baza e biti koriena i u svim narednim primerima u skripti. Nakon kreiranja nove baze, pojavie se ekran prikazan na slici 5. 7

Slika 6: Kreiranje tabele

Nakon kreiranja baze, pojavie se poruka No tables found in database. To znai da je kreirana baza prazna i da je potrebno kreirati tabele. U polje Name potrebno je uneti naziv tabele, a u polje Number of Fields broj kolona (polja) koje e se nalaziti u novokreiranoj tabeli. Zatim je potrebno definisati kolone (slika 6).

Slika 7: Definisanje kolona

Pojavie se polja za definiciju svake kolone ponaosob. Broj ovih polja zavisi od izabranog broja kolona u prethodnom koraku. Za svaku kolonu potrebno je definisati sledee parametre: Field naziv kolone. Type tip vrednosti kolone. Tipovi podataka koji se najee koriste su: INT celobrojna vrednost DOUBLE decimalna vrednost. Obavezan je i parametar LENGTH, koji se unosi u formatu a,b. Parametar a predstavlja ukupan broj cifara broja, a parametar b predstavlja broj cifara iza decimalnog zareza. Na primer, ukoliko se u polje LENGTH unese 8,2; to znai da se moe skladititi najvie estocifren broj, sa dva decimalna mesta. Ukoliko se unese na primer broj 123456.7890, ovaj broj e biti zaokruen na najbliu vrednost (123456.79). VARCHAR krai tekst. Pogodan je za naslove, e-mail adrese, imena i dr. Potrebno je definisati i parametar LENGTH (maksimalno 255 karaktera). TEXT dui tekst. Pogodan je za sadraj nekog lanka, vest i sl. 8

DATETIME polje za uvanje vremena i datuma. Ovo polje prihvata vrednosti unete u formatu YYYY-MM-DD HH:MM. Length/Values maksimalna duina polja ili skup moguih vrednosti. Default podrazumevana vrednost polja, ukoliko se ne definie pri novom unosu. Collation kodni raspored. Ukoliko se ne izabere, primenjuje se kodni raspored baze. Attributes atributi. Moe biti binarna vrednost ili vrednost bez znaka. Obino se ostavlja nepopunjeno. Null selektuje se ukoliko je mogue da vrednost polja bude NULL. Index bira se ukoliko polje ujedno predstavlja klju. PRIMARY se odnosi na primarni klju, UNIQUE na jedinstveni klju, opcija INDEX se bira ukoliko se eli indeksiranje baze po tom polju, a FULLTEXT je opcija za puno indeksiranje. AUTO_INCREMENT ova opcija se bira ukoliko je izabrano da vrednost polja Index bude PRIMARY. Odnosi se na automatsku dodelu primarnog kljua, po principu automatske inkrementacije. Comments ovde se unose opcioni komentari vezani za dato polje.

Opcija Storage Engine odnosi se na nain skladitenja podataka u datoj tabeli MySQL baze. MySQL podrava dva osnovna tipa skladitenja InnoDB i MyISAM. Njihov uporedni prikaz dat je u tabeli 2: Spoljni kljuevi Integritet podataka Zakljuavanje podataka Indeksiranje (pun tekst) Oporavak podataka Brzina upisivanje podataka (INSERT, UPDATE) Brzina itanja podataka (SELECT) Hardverska zahtevnost i potronja sistemskih resursa Rad sa transakcijama InnoDB podrava da na nivou reda ne bolja podrka bri sporiji zahtevniji da MyISAM ne podrava ne na nivou tabele da loija podrka sporiji bri manje zahtevan ne

Tabela 2: Uporedni prikaz InnoDB i MyISAM naina skladitenja

Primer 2: Kreiranje tabele (PhpMyAdmin) Baza bazanovosti treba da sadri jednu tabelu, definisanu relacionim modelom: novosti (idnovost, naslov, tekst) Za kreiranje ove tabele, nakon kreirane baze iz primera 1, treba uneti novosti u polje Create new table on database bazanovosti -> Name, a u polje Number of Fields treba uneti 3, zatim treba kliknuti na dugme Go. Nakon kreiranja tabele, treba definisati polja kao na slici 6 i kliknuti na taster GO.

9

Novokreiranu tabelu novosti mogue je napuniti podacima korienjem opcije Insert, a zatim unosom podataka (slika 7).

Slika 8: Ubacivanje novih podataka

Svaka grupa polja (idnovost, naslov, tekst) predstavlja jedan red podataka u tabeli. Tabelu je mogue napuniti proizvoljnim podacima na ovaj nain. Izborom opcije Browse (slika 8), mogue je videti sadraj tabele, odnosno sve podatke koji su uneti.

Slika 9: Pregled sadraja tabele

10

1.1.1 Korienje SQL naredbi za kreiranje bazePhpMyAdmin podrava i kreiranje baze korienjem SQL naredbi. Potrebno je vratiti se na poetnu stranu PhpMyAdmin-a, a zatim kliknuti na opciju SQL (slika 9). Pojavie se forma za unos SQL naredbi. Opcija Delimiter odnosi se na znak koji razdvaja linije u upitu. Podrazumevano se koristi taka-zarez (;).

Slika 10: Korienje SQL naredbi

Primer 3: Kreiranje nove baze podataka (SQL) Baza bazanovosti moe da se kreira i pomou SQL naredbi. Rezultat je potpuno isti kao i u primeru 2. SQL naredbe za kreiranje ove baze sa tabelom i podacima su: CREATE DATABASE bazanovosti CHARSET=utf8 COLLATE=utf8_unicode_ci ; USE bazanovosti; CREATE TABLE novosti ( idnovost INT( 20 ) NOT NULL AUTO_INCREMENT , naslov VARCHAR( 20 ) NOT NULL , tekst VARCHAR( 45) NOT NULL , PRIMARY KEY ( idnovost ) ); INSERT INTO novosti (idnovost, naslov, tekst) VALUES (1, 'Neki naslov', 'Neki tekst');

1.1.2 Izvoz podatakaDa bi se sauvala baza podataka sa svim pripadajuim tabelama i podacima, potrebno je vratiti se na poetnu stranu PhpMyAdmin aplikacije, a zatim izabrati opciju Export (slika 10). Sa leve strane, ispod opcije Export, nalazi se lista dostupnih baza podataka. Potrebno je selektovati eljenu bazu za izvoz. Ispod liste baza, potrebno je izabrati opciju SQL kao format izvoza (uglavnom je podrazumevano izabrana). Pri dnu strane nalazi se opcija Save as file. Ukoliko je izabrana, baza e se eksportovati u obliku fajla koji e biti preuzet (download-ovan) na raunar. Ako ova opcija nije izabrana, prikazae se lista SQL naredbi koje slue za kreiranje ove baze. U polje File Name Template mogue je uneti eljeni naziv 11

fajla koji e se sauvati na raunaru, kao rezultat izvoza baze. Nakon izvrenih podeavanja, treba kliknuti na taster GO, ime e se sauvati baza na lokalnom raunaru, u folderu za Download fajlova (ili na eljenoj lokaciji, ako je browser tako konfigurisan).

Slika 11: Izvoz baze

1.1.3 Uvoz podatakaDa bi se prethodno izvezeni podaci uvezli, neophodno je otii na poetnu stranu PhpMyAdmin-a i izabrati opciju Import (slika 11). Ovde treba izabrati SQL fajl sa raunara (Choose File) i kliknuti na taster GO.

Slika 12: Uvoz baze

12

1.2 PHP, MySQL i korienje naih slovaUkoliko se ne izvri pravilno podeavanje razvojnog okruenja i baze podataka, mogue je da se naa irilina ili latinina slova na stranici nee pravilno prikazati. Sve PHP fajlove je potrebno snimati u UTF-8 kodnom rasporedu. Podeavanja naravno variraju u zavisnosti od razvojnog okruenja koje se koristi. Kod podeavanja Notepad++ okruenja, trebalo bi promeniti podrazumevano podeavanje kodnog rasporeda izborom podeavanja Settings Preferences New Document / Default Directory, a zatim opcije UTF-8 without BOM u grupi opcija Encoding. BOM predstavlja skraenicu od Byte Order Mark. To je unicode karakter koji definie poredak bajtova dokumenta (da li je u pitanju big-endian ili littleendian). Ovaj karakter se dodaje na sam poetak dokumenta, i moe da predstavlja problem u radu sa PHP sesijama, upravo zbog slanja HTTP header-a koji mora uvek da bude na poetku HTTP zahteva. Zbog toga je poeljno da se BOM ne koristi. Prilikom otvaranja PHP dokumenta u razvojnom okruenju Notepad ++, uvek je mogue videti kodni raspored u kome je dokument sauvan pomou opcije Encoding (slika 12).

Slika 13: Encoding podeavanja u programu Notepad ++

Ukoliko je izabrana opcija Encode in UTF-8 without BOM, to znai da su podeavanja kodnog rasporeda korektna. Ukoliko je izabrana neka druga opcija, postoji mogunost konvertovanja dokumenta u unicode izborom opcije Convert to UTF-8 without BOM, nakon ega je potrebno ponovo sauvati dokument. Kod HTML stranica, veoma je poeljno dodavanje meta taga koji opisuje kodni raspored. U pitanju je meta tag:

HTML dokument bi dakle ovako trebalo da izgleda: Moja strana Neki sadraj strane

13

Prilikom kreiranja MySQL baze, uvek treba voditi rauna o parametrima collation i charset. To je detaljnije objanjeno u prethodnom poglavlju. Trebalo bi koristiti utf8_unicode_ci raspored. Konano, bitno je da se utf8 kodni raspored koristi i prilikom pozivanja baze iz PHP-a. Vie o tome bie objanjeno u narednim poglavljima.

1.3 Pregled najee korienih SQL upitaSQL predstavlja struktuirani jezik za upite. Osnovna sintaksa SQL upita je praktino ista kod svih dostupnih servera bazi podataka, uz neke manje specifinosti. U sledeoj tabeli dat je kratak prikaz SQL upita (SQL query) o kojima e kasnije biti rei: Sintaksa upita CREATE DATABASE ime_baze CREATE TABLE ime_tabele ( Ime_kolone1 tip podataka (velicina), Ime_kolone2 tip podataka (velicina), Ime_kolone3 tip podataka (velicina) . ) INSERT INTO ime_tabele (ime_kolone1, ime_kolone2, ime_kolone3) VALUES (vrednost_za_kolonu1, vrednost_za kolonu2, vrednost_za_kolonu3) SELECT ime_kolone1,ime_kolone2, ime_kolone3, ime_koloneN FROM ime_tabele. (umesto naziva kolona moe se staviti * , to je dkorer znak da je sve selektovano). SELECT ime_kolone1,ime_kolone2, ime_kolone3, ime_koloneN FROM ime_tabele WHERE ime_kolone=vrednost SELECT ime_kolone1,ime_kolone2, ime_kolone3, ime_koloneN FROM ime_tabele ORDER BY ime_kolone (desc). SELECT ime_tabele1.ime_kolone1, ime_tabele1.ime_kolone2, ime_tabele1.ime_kolonen, ime_tabele2.ime_kolone1, ime_tabele2.ime_kolone2, ime_tabele2.ime_kolonen FROM ime_tabele1 JOIN ime_tabele2 ON Funkcija Kreira novu SQL bazu Kreira tabelu u okviru selektovane baze podataka. Navode se imena svih kolona i tipovi podataka koje e podravati ove kolone. Za tipove podataka u MySQL u, pogledati reference za MySQL. Ubacuje konkretne vrednosti u kreiranu tabelu u MySQL bazi podataka. Selektuje odabrane, ili sve kolone iz tabele

Selektuje odabrane kolone na osnovu zadatog kriterijuma. Selektuje odabrane kolone iz tabele i razvrstava ih u opadajuem ili rastuem redosledu na osnovu neke kolone. Ako se ne navede Desc, po default u se podrazumeva rastui redosled. Selektuje izabrana polja iz dve tabele, koje su spojene izjednaavanjem spoljnog i primarnog kljua.

14

ime_tabele1.kljuc1 = ime_tabele2.kljuc2 UPDATE ime_tabele SET ime_kolone=nova_vrednost WHERE ime_kolone=stara_vrednost DELETE FROM ime_tabele WHERE ime_kolone=neka_vrednost

Menja konkretne vrednosti iz odreene tabele na osnovu zadatih kriterijuma. Brie konkretne vrednosti iz odreene tabele na osnovu zadatih kriterijuma.

Tabela 3: Najei SQL upiti

15

2 Ekstenzija php_mysqlOva ekstenzija postoji od verzije 3 programskog jezika PHP. Nalazi se i u aktuelnoj verziji 5, radi odranja kompatibilnosti sa starijim PHP aplikacijama, meutim vie se ne odrava. Prilikom kreiranja nove PHP aplikacije, ne preporuuje se korienje ove ekstenzije.

2.1 Konekcija na MySql serverDa bi se moglo upravljati podacima iz baze, neophodno je uspostaviti konekciju sa serverom na kojem se ta baza nalazi. Serveri se nalaze na mrei i njima se pristupa pomou IP-a ili domene (hosta). Uz podatak o hostu servera, potrebni su korisniko ime i lozinka da bi se uspeno povezalo na server i komuniciralo sa njim. U PHP postoji ugraena funkcija za povezivanje sa serverom mysql_connect. Funkcija vraa broj koji je referenca ka uspostavljenoj konekciji, ili false ukoliko konekcija nije uspela. Konekcija ostaje otvrena sve dok se ne pozove funkcija mysql_close ili dok se ne izvri PHP skript. U sledeoj tabeli su date neke od osnovnih funkcija za spajanje na MySQL server. Naziv funkcije mysql_connect Sintaksa Opis mysql_connect(ime servera:port, Povezuje PHP skriptu sa korisniko ime, ifra ukoliko MySQL bazom. Ako je postoji). baza zatiena ifrom, ifra se mora uneti kao parameter. mysql_close (naziv promenljive Zatvara PHP konekciju kojoj je dodeljna vrednost sa bazom. mysql_connect funkcije) mysql_query( upit koji se izvrava U okviru ove naredbe se nad MySQL bazom, naziv moe koristiti bilo koji promenljive kojoj je dodeljena upit: za kreiranje tabele, vrednost mysql_connection()) za kreiranje baze, za popunjavanje baze, auriranje baze, itanje iz baze... mysql_error() Izvetava o mysql greci mysql_select_db(ime_baze) Bira MySQL bazu nad kojom e vriti upiteTabela 4: MySQL funkcije

mysql_close mysql_query

mysql_error mysql_select_db

Dobra praksa je da se prilikom dizajniranja PHP veb aplikacije koja koristi bazu podataka napravi jedan fajl u kome je definisano spajanje na MySQL server i odabir baze. Ovo je dobra praksa, zato to postoji mogunost promene hosting provajdera i u tom sluaju dolazi do promene parametara baze podataka. Ukoliko se parametri uvaju samo u jednom fajlu koji se ukljuuje pomou PHP funkcije include ili require u ostale fajlove gde je potreban pristup bazi, prilikom eventualne naknadne promene parametara za pristup bazi neophodna je intervencija samo na jednom mestu. U sluaju da se spajanje na MySQL server navodi u svim fajlovima koji koriste podatke iz baze, neophodna je intervencija na vie mesta, to nije praktino, jer moe da se dogodi da veb programer previdi neku stranicu i da ta stranica nee moi da se uspeno povee na server baze podataka. 16

Primer 4: Povezivanje sa bazom podataka (php_mysql) Pomou fajla konekcija.php se vri povezivanje sa serverom na kojem je smetena baza.