Utilizarea în PHP PDO

DOP este o abreviere de PHP Data Objects. Această extensie ne oferă acces la bazele de date folosind obiecte. Și ne vom uita la în detaliu în acest articol, cum să lucreze cu această extensie, că bine și rău. Wellcome.

Înainte să începem să vorbim despre DOP, să vedem ce nu suntem mulțumiți cu MySQL și mysqli. Ei bine, MySQL nu este îndeplinită chiar și de faptul că acesta anunțase deja depreciat, iar noile versiuni nu vor fi acceptate. Mysqli - o nouă extensie, care are o serie de beneficii pentru predecesorul său și MySQL funcționează bine, dar ... Dacă sunteți de a începe un nou proiect, și alege ce să folosească: mysqli sau DOP, trebuie să selectați DOP și de aceea.

În primul rând, aplicațiile PHP au devenit un obiect-orientat, și pune în aplicare abordarea orientată către obiect DOP pentru a lucra cu baze de date. Acest lucru simplifică foarte mult cod, scalabilitatea și suportul acesteia, precum și standardizate, ca să spunem așa. În al doilea rând, și mai important, DOP - o interfață de nivel înalt pentru a accesa baza de date, dar nu neapărat la MySQL. DOP suportă multe baze de date diferite: MySQL, PostgreSQL, SQLite, MSSQL și altele. Dacă într-o dimineață bine vă decide să se mute de la MySQL la PostgreSQL, va trebui să înlocuiască toate doar o singură linie, mai degrabă decât rescrierea întregul cod. În al treilea rând, în DOP este un astfel de lucru ca setări de „legare“. În continuare, veți afla ce este. Până în prezent, doar să spun că este mai ușor de a „proiecta“ interogări complexe dinamic și oferă protecție împotriva SQL-injectare.

conexiune de date Setarea

Pentru a stabili o conexiune la baza de date prin intermediul DOP, aveți nevoie pentru a inițializa obiectul DOP, după cum urmează:

Constructorul are trei parametri:

  1. Așa-numitul șir DSN. Este specificat pentru a conecta conducătorului auto la baza de date, gazda, numele bazei de date și codificarea.
  2. autentificare
  3. parolă

Spre deosebire de obicei vă mysql_query (sau mysqli_query), în DOP pentru a efectua interogări, există două metode: unul este folosit pentru interogări care returnează un rezultat (selectați, spectacol), al doilea - pentru interogări care nu returnează rezultate (insert, update, șterge ...) .

interogarea

Aici este un exemplu simplu de introducere a datelor:

Iată ce pot fi valori posibile:

  • DOP. FETCH_ASSOC - returnează un tablou asociativ. În exemplul de mai sus, pentru a obține id-ul pe care doriți să utilizați rând $ [ „id“]
  • DOP. FETCH_NUM - returnează un tablou ordonat. În exemplul de mai sus, pentru a obține id-ul pe care doriți să utilizați rând $ [0];
  • DOP. FETCH_OBJ - returnează un obiect. Pentru ID apel $ rând -> ID;
  • DOP. FETCH_CLASS - returneaza o instanta a acestei clase în avans, iar datele selectate (tabelul de câmp din baza de date), se va potrivi câmpurile corespunzătoare (proprietăți) ale clasei.

Notă: Se recomandă întotdeauna să se specifice FETCH_MODE, în caz contrar FETCH_BOTH vor fi afișate în mod implicit, ceea ce înseamnă că datele vor fi disponibile în două versiuni, ca un tablou asociativ, și ca o matrice regulată care consumă exact de 2 ori mai multă memorie.

Cu siguranță ați observat o FETCH_CLASS constantă. Da, aceasta este o oportunitate de super. Să ne uităm la ea mai aproape.

Să spunem că e noastră clasă utilizator:

Când vom apela metoda prepare (), DOP cererea și analizează cache-l pentru consultare ulterioară. Atunci când, în seria noastră, din nou numim EXECUTE (), nu este creată o cerere. Tocmai am înlocui noua valoare. Așa cum am spus, are un efect pozitiv asupra performanței aplicațiilor.

De asemenea, este posibil să fi observat că am folosit metoda fetchColumn (), care nu spune nimic altceva. A venit timpul. Această metodă returnează valoarea primului câmp. Este foarte convenabil atunci când avem nevoie pentru a efectua count (), suma (), min (), max () și alte întrebări similare.

Valorile de legare în clauza IN

Mulți programatori primul care se confruntă cu DOP și să ajungă la o situație cu condițiile din () se confruntă cu unele probleme. Imaginați-vă că ne-am pus împreună un șir de valori separate prin virgulă de la aydishnikov utilizatorii care doresc să iasă din baza.

articole similare