IntroducerePe parcursul precedentelor lectii ai vazut cum poti crea o baza de date pe care s-o folosim in acest curs. In aceasta lectie vei vedea cum introduci anumite informatii in baza ta de date astfel incat sa devina cat mai utila.
Conectarea la o baza de datePrimul lucru pe care trebuie sa-l faci este conectare la baza de date MySQL. Acesta este un pas foarte important, pentru ca, daca nu esti conectat, comenzile catre baza de date vor esua.
Practic, pentru a folosi o baza de date trebuie sa precizezi numele de utilizator (username), parola (password) si numele bazei de date :
$username="nume_utilizator";
$password="parola";
$database="numele_bazei_de_date";
|
Desigur, aici s-ar putea discuta daca nu este riscant sa pastrezi parola intr-un fisier. Nu trebuie sa te alarmezi, insa, deoarece sursa PHP este prelucrata de server inainte de a fi trimisa navigatorului, astfel incat este imposibil pentru orice utilizator sa vada scriptul.
Mai apoi, ai nevoie de o comanda care sa lanseze conexiunea la baza de date:
mysql_connect(localhost,$username,$password);
|
Aceasta linie spune PHP-ului sa se conecteze la serverul de baze de date MySQL la 'localhost' (localhost se numeste serverul pe care ruleaza PHP-ul. In afara cazului in care gazda Web indica altceva, vei folosi localhost) folosind numele de cont memorat in $username si parola din $password.
Mai inainte de a discuta cum lucrezi cu baza de date, sa-ti arat inca o comanda:
Aceasta este o comanda foarte importanta care inchide conexiunea cu serverul de baze de date. Scriptul va rula inca, daca nu incluzi aceasta comanda, iar prea multe conexiuni MySQL deschise pot cauza probleme serverului web. Este un obicei bun sa incluzi comanda de inchidere de mai sus dupa ce ai introdus toate comenzile catre baza de date, pentru a mentine platforma in buna stare.
Selectarea bazei de dateDupa ce te-ai conectat la severul de baze de date, trebuie sa selectezi baza de date pe care vrei s-o folosesti. Trebuie sa fie o baza de date la care sa ai acces, cu respectivul nume de utilizator. Vei folosi urmatoarea comanda:
@mysql_select_db($database) or die( "Baza de date nu poate fi selectata");
|
Aceasta spune PHP-ului sa selecteze baza de date specificata in variabila $database (pe care ai definit-o mai inainte). Daca conexiunea nu se poate realiza procesul (executia script-ului) se opreste afisand textul:
Baza de date nu poate fi selectata
|
Aceasta parte suplimentara 'or die' este buna pentru iesire, chiar daca nu asigura decat un minim control al erorii.
Executia comenzilorDupa conectarea la server si selectia bazei de date dorite, poti incepe executia comenzilor pe server.
Exista doua moduri de a executa o comanda. Prima revine pur si simplu la introducerea comenzii in PHP. Asta merge atunci cand nu apar rezultate ca urmare a executiei comenzii.
Cea de a doua varianta este sa definesti comanda ca o variabila. Asta va atribui variabilei rezultatele operatiei.
In aceasta lectie vei folosi prima cale, deoarece nu astepti raspuns de la baze de date. Comanda va arata cam asa:
Folosirea acestei forme a comenzii este utila pentru ca repeti pur si simplu aceiasi comanda iarasi si iarasi fara a fi nevoie sa memorezi altele. Tot ce ai de facut este sa schimbi variabila.
Introducerea datelorAcum ne vom intoarce la baza de date cu produse, pe care am creat-o in lectia anterioara. Pentru a introduce primele informatii in baza de date:
Nume: Locomotiva Rh474
Pret: 805 RON
|
Toate acestea vor fi introduse cu o singura comanda:
$query = "INSERT INTO produseVALUES ('','Locomotiva Rh474','805')";
|
Pare putin cam confuz la prima vedere. Sa te lamuresc putin.
Ma intai, apare variabila $query careia ii atribui o comanda (vezi paragraful precedent). Urmatoarea parte, adica:
INSERT INTO produse VALUES
|
este destul de usor de inteles. Ea spune PHP-ului sa insereze in tabel numita produse valorile care urmeaza (scrise intre paranteze).
Acolo, intre paranteze, ai toate campurile de adaugat. Apar toate campurile in ordine si sunt inserate informatiile dintre ghilimele. Spre exemplu:
va fi inserat in al 2-lea camp, care, in aceasta tabela este campul 'nume' .
Poate ai retinut ca nu am inserat nimic in primul camp din baza de date (produsID). Asta din cauza ca acest camp va fi un camp index, elementul unic de identificare. Fiecare inregistrare din baza de date va avea un unic ID. Din aceasta cauza, cand incarci baza de date, vei pune ID pe 'Auto Increment'. Asta inseamna ca, neatribuindu-i nici o valoare, el va lua la fiecare inregistrare urmatoarea valoare din sir. Iar prima inregistrare va avea valoarea ID=1 . |