Accesul la baza de date în PHP
Utilizarea practică a API DOP pentru a lucra cu baza de date.
Pentru a vă conecta la o bază de date MySQL, există trei API diferite:
- MySQL
- mysqli - MySQL îmbunătățită (îmbunătățită)
- PDO - PHP Data Objects (PHP Data Objects)
API-ul MySQL tradiționale de locuri de muncă bun și este larg răspândită, datorită faptului că face procesul de obținere a înregistrărilor dintr-o bază de date este foarte simplu. De exemplu:
Da, exemplul este foarte simplu. Dar are dezavantaje semnificative:
- Neactualizat, deși oficial nu este considerată depășită, dar pentru noi aplicații și de formare profesională pentru a utiliza alte API.
- Curățarea: Procesul de curățare de intrare de utilizator din codul inutil cade pe umerii dezvoltatorului.
- Flexibilitate: Acest API este flexibil și funcționează numai cu baza de date MySQL. Și dacă trebuie să mergi la celălalt?
DOP (PHP Data Objects) oferă un instrument puternic pentru a utiliza. Nu este nevoie să se gândească la driverele de baze de date, puteți utiliza declarații pregătite, să excludă codul de injecție SQL.
La prima vedere pare straniu API DOP. Nu pentru că el este prea complicat, dar pentru că MySQL este foarte usor! Trebuie doar pentru a face câțiva pași simpli.
compus
Știi deja modul învechit de a conecta cu baza de date MySQL:
Atunci când se lucrează cu DOP pentru a crea o nouă instanță a clasei, specificați driverul, numele bazei de date, numele de utilizator și parola:
Avantajul acestei abordări este ușurința modificărilor bazei de date. Suficient pentru a schimba numele sursei de date. Nu dependența de MySQL folosind funcția mysql_connect.
Dar ce se întâmplă dacă apare o eroare la conectarea la o bază de date? Înfășurați totul în unitatea try / catch:
Rețineți că implicit DOP este setat pentru a lucra cu erori PDO :: ERRMODE_SILENT. Dacă este lăsat neschimbat, va trebui să se ocupe de erori manual după executarea interogării.
La elaborarea unui set mai bine DOP modul ERRMODE_EXCEPTION ::. în care eroarea brută va provoca o excepție și a opri script-ul.
Următoarele moduri de operare cu erori:
- DOP :: ERRMODE_SILENT
- DOP :: ERRMODE_WARNING
- DOP :: ERRMODE_EXCEPTION
obținem date
Deci, avem o conexiune la baza de date, iar acum aveți nevoie pentru a obține date. Există două moduri de a rezolva problema: interogarea și executați. Uită-te la ambele.
Deși exemplul de mai sus va funcționa, avem nevoie pentru a curăța manual datele de utilizator folosind metoda de DOP :: citat. Această metodă este echivalentă cu funcția mysql_real_escape_string (în ambele cazuri, linia este ștearsă și între ghilimele). În cazul în care aveți nevoie pentru a construi o interogare SQL folosind datele de utilizator, cel mai bine este de a utiliza declarații pregătite. Asta este, dacă interogarea SQL nu depinde de date introduse de utilizator, metoda de interogare este o alegere excelentă, iar rezultatul poate fi tratat cu foreach exprimare.
Acest exemplu utilizează, de asemenea, o metodă de preparare a pregăti cererea, înainte de a atașa datele utilizatorului. În acest caz, injecție SQL este teoretic imposibilă, deoarece datele în sine nu este inserat în textul interogare SQL. Folosind un parametru numit (: id) pentru a marca locația.
Apoi, cererea de transfer la matrice, care conține datele care urmează să fie utilizat în locul parametrului numit.
Alternativ, puteți utiliza metoda bindParam:
Prelucram datele
După apelarea metodei executa Există mai multe modalități de a obține matrice de date (implicit), obiectul, și așa mai departe. In exemplul de mai sus utilizează modul implicit: DOP :: FETCH_ASSOC. Este ușor să se schimbe dacă doriți:
Acum, rezultatul va fi sub forma unui obiect. Opțiunile sunt:
- DOP :: FETCH_ASSOC: Returnează o matrice.
- DOP :: FETCH_BOTH: Returnează o matrice, indexat după nume coloană.
- DOP :: FETCH_BOUND: returnează TRUE și atribuie valoarea de coloane în variabile PHP set de rezultate asociate.
- DOP :: FETCH_CLASS: Returnează o nouă instanță a clasei specificate.
- DOP :: FETCH_OBJ: returnează un obiect anonim cu nume de proprietate coloane corespunzătoare.
Codul de mai sus nu are feedback-ul în cazul în care nici un rezultat. Pentru a remedia situația:
Codul complet este după cum urmează:
execuție multiplă
DOP afișează puterea în cazurile în care este necesar pentru a efectua aceeași interogare SQL de mai multe ori, dar cu diferiți parametri.
Odată ce solicitarea a fost pregătit, acesta poate fi rulat de mai multe ori cu diferiți parametri. Codul de mai sus introduce cele două rânduri din baza de date, unul numit „Kevin“, iar celălalt - „Steven“
operații de bază de date tipice (CRUD)
Luați în considerare o implementare tipică a operațiunilor de date (CRUD - Create, Read, Update, Delete a crea, citi, actualiza, șterge). Rețineți că codul pentru ei este foarte asemănătoare.
Crearea (Box)
actualizare
Prin obținerea de informații de la două canale (vedere si auz) eficacitatea instruirii de învățare departe superioare de cărți. O temele pentru acasă și teste on-line vă va permite să se gândească în mod constant în limba țintă și imediat verifica cunoștințele!
Dacă doriți o lungă perioadă de timp pentru a studia modul în HTML, mi-ai, pentru ai vesti bune!
Dacă ați învățat deja HTML și doresc să avanseze, următorul pas va fi de a studia tehnologia CSS.
Dacă doriți să înțeleagă conceptele de domeniu si hosting, învață cum să creeze o bază de date, încărca fișiere pe un site web prin intermediul unui server FTP, crea subdomenii, configurați cutiile poștale pentru site-ul și să monitorizeze participarea, acest curs este conceput special pentru tine!