Faptul ca limbajul PHP a devenit atat de popular se datoreaza in mare masura faptului ca acesta contine suport de functii pentru lucrul cu bazele de date.
Pentru a utiliza o baza de date MySQL, avem nevoie de o conexiune la serverul de baze de date. Aceasta conexiune va fi utilizata ca punct de access pentru comenzi mysql.
Pentru a va conecta la un server MySQL, utilizati functia mysql_connect(), a carei sintaxa este urmatoarea:
mysql_connect(nume_gazda, nume_utilizator, parola)
Unde "nume_gazda" este numele gazdei, serverul pe care ruleaza serviciul MySQL, "nume_utilizator" este numele utilizatorului care se conecteaza la serverul MySQL, iar "parola" este parola MySQL asociata utilizatorului.
In cazul in care serverul MySQL ruleaza pe calculatorul dv. personal, parametrul "nume gazda" este in general "localhost". In alte cazuri, daca serverul MySQL ruleaza pe un alt computer, va trebui sa specificati adresa computerului pe care ruleaza serverul MySQL.
Functia returneaza FALSE în caz de esec; în caz contrar, returneaza o valoare denumita identificator de legatura, care serveste ca instrument de manipulare pentru accesul la serverul MySQL.
Iata un exemplu de utilizare a functiei mysql_connect():
În mod prestabilit, functia mysql_connect() se conecteaza la serviciul MySQL prin intermediul portului 3306, portul MySQL standard. Daca doriti sa obtineti accesul la un server MySQL care ruleaza pe un port non-standard, puteti atasa un caracter doua puncte si numarul portului dorit la argumentul care contine numele gazdei; de exemplu, "localhost:3308".
Pentru terminara unei conexiuni la serverul MySQL se foloseste instructiunea:
mysql_close();. Aceasta functie inchide conexiunea curenta. Functia returneaza TRUE în caz de reusita; în caz contrar, returneaza FALSE.
În general, nu este necesara invocarea functiei mysql_close(), deoarece PHP închide automat conexiunile deschise cu bazele de date atunci când un script îsi încheie executia.
Iata un exemplu de conectare la serverul MySQL si inchidere a conexiunii folosind functia mysql_close():
Biblioteca MySQL din PHP furnizeaza doua functii de verificare a erorilor, si anume mysql_errno() si mysql_error().
Fiecare functie returneaza un rezultat care reflecta eroarea, daca aceasts exista.
Nici una din cele doua functii nu necesita argumente. Functia mysql_errno() returneaza un cod numeric de eroare, în timp ce functia mysql_error() returneaza un sir care descrie eroarea. Daca nu s-a produs nici o eroare, codul numeric al erorii este zero si descrierea are ca valoare un sir vid.
Informatiile de eroare sunt disponibile numai daca este activa o conexiune cu serverul MySQL. Prin urmare, intai trebuie sa se reuseasca conectarea la MySQL.
Iata cum puteti folosi functiile respective pentru a verifica modul de operare a functiei mysql_select_db() (aceasta selecteaza baza de date pentru lucru):
Numeroase functii PHP pot produce erori sau mesaje de avertizare care îi pot deruta pe utilizatorii siturilor Web sau le pot cauza neplaceri.
PHP furnizeaza functia error_reporting(), care va permite sa eliminari mesajele nedorite. Functia are urmatoarea forma:
error_reporting(mask)
unde "mask" specifica tipul mesajelor care vor fi raportate. Daca specificati zero ca valoare a atributului "mask" (error_reporting(0)), nu va fi raportat nici un mesaj. Daca specificati "E_ALL" in loc de "mask" (error_reporting(E_ALL)), vor fi raportate toate mesajele.
Sau, o alta metoda pentru oprirea mesajelor de eroare, explicata in lectiile anterioare, este adaugand @ inaintea functiei.
O functie importanta in lucrul cu bazele de date este mysql_query(), care are urmatoarea forma:
mysql_query("interogare")
sau
mysql_query("interogare", "id_con")
- "interogare" este un sir ce contine comenzile SQL care urmeaza a fi executate (in PHP, comenzile SQL nu trebuie sa se încheie cu un caracter punct si virgula).
- "id_con" este identificatorul de conectare returnat de functia mysql_connect(), daca acesta este omis se foloseste ultima legatura deschisa cu aceasta functie.
Functia mysql_query() returneaza TRUE daca serverul a reusit sa execute interogarea; în caz contrar, returneaza FALSE.
- Important: pentru ca sa puteti lucra cu baze de date in PHP trebuie sa cunoasteti comenzile SQL necesare. Cele mai importante au fost prezentate in lectiile 22, 23 si 24
Pentru a crea o noua baza de date folosim comanda SQL "CREATE DATABASE numeBazaDeDate;", pe care o putem lansa de la o consola MySQL, sau o putem apela de la un script PHP prin intermediul functiei mysql_query().
Iata un exemplu prin care creem baza de date "lucrudb":
Dupa conectare si selectarea bazei de date putem crea tabele in cadrul bazei de date selectate. Pentru aceasta folosim limbajul SQL CREATE TABLE numeTabel (coloana1, coloana2, ...); impreuna cu functia mysql_query().
In exemplul urmator cream tabelul cu numele "carti" care contine urmatoarele campuri:
Nume camp | Tip |
id | Identificator unic, Not Null, cheie primara |
nume | Char(30) |
autor | Char(25) |
gen | Char(10) |
data_intrare | Date |
pret | Decimal(12,2) |
Dupa ce aveti tabelul creat in baza de date MySQL puteti adauga date in el, pentru aceasta se foloseste functia mysql_query("interogare") unde "interogare" este urmatoarea comanda:
INSERT INTO `nume_tabel` (coloana1, coloana2, ...) VALUES ('date1', 'date2', ...)
- unde `nume_tabel` este numele tabelului in care se adauga datele
- "coloana1, coloana2, ..." sunt numele coloanelor in care se doreste adaugarea datelor
- "date1, date2, ..." sunt datele care vor fi adaugate, tinandu-se cont de ordinea si numarul lor cu cea a coloanelor
Iata un exemplu, in care se foloseste tabelul "carti" creat mai sus
Observati sintaxa de scriere corecta a interogarilor MySQL in PHP, numele tabelului se scrie intre caracterele ( ` ` ) si valorile intre ghilimele simple ( ' ' )