Pdo vs mysqli

Ambele opțiuni furnizează instrumente foarte simple pentru conectarea la o bază de date:

Atât PDO cât și MySQL oferă un API orientat pe obiecte. Dar MySQLi are și o parte procedurală a API, care pentru începători poate părea mai ușor de stăpânit. Dacă sunteți familiarizat cu propriul driver PHP MySQL, migrarea la partea procedurală a MySQLi va fi mai ușor pentru dvs. Dar, după ce a ajuns la înălțimile de masterat în folosirea DOP, poate fi folosit cu orice bază de date fără modificări ale codului principal







Suport pentru baze de date

Pdo vs mysqli

Avantajul cheie al PDO înainte de MySQLi este suportul său puternic pentru diferite baze de date. La momentul scrierii, DOP poate folosi 12 drivere. Și MySQLi suportă numai MySQL.

Pentru a imprima o listă de drivere PDO acceptate, puteți folosi următorul cod:

Ce înseamnă diferența dintre numărul de baze de date acceptate? Pentru situațiile în care proiectul trebuie să treacă la o altă bază de date, DOP va face procesul transparent. Tot ce trebuie să faceți este să schimbați șirul de conectare și mai multe interogări dacă nici o metodă nu este acceptată de noua bază de date. În cazul MySQLi, va trebui să rescrieți tot codul, inclusiv cererile.

Parametrii numiți

O altă caracteristică importantă distinctivă a PDO-urilor sunt parametrii care fac procedura de legare mult mai simplă:

Comparați cu MySQLi:

Întrebarea poate părea mai scurtă decât numele simbolic. Cu toate acestea, flexibilitatea și toleranța la erori sunt pierdute, deoarece dezvoltatorul trebuie să-și amintească ordinea parametrilor, care în majoritatea cazurilor este o zonă cu o probabilitate foarte mare de erori greu de recunoscut.

Din păcate, MySQLi nu acceptă parametrii numiți.

Cartografierea obiectelor

Atât PDO cât și MySQLi pot afișa rezultatele ca obiecte. Această caracteristică poate fi utilă dacă nu doriți să utilizați stratul de abstractizare al bazei de date și doriți să implementați un model de mapare obiect-relațional. Să presupunem că avem o clasă de utilizatori cu câteva proprietăți care se potrivesc cu numele câmpurilor din baza de date:

Fără maparea obiectelor, va trebui să completați valorile cu fiecare câmp (fie manual, fie folosind constructorul) înainte de a putea utiliza corect metoda info ().

Dar maparea obiectelor vă permite să definiți proprietățile chiar înainte de construirea obiectului. De exemplu:

siguranță

Ambele biblioteci oferă instrumente pentru protecția împotriva injecțiilor SQL, pe care dezvoltatorii le pot folosi la discreția lor.







Să presupunem că infractorul încearcă să încorporeze o interogare SQL rău intenționată prin parametrul "username" al cererii HTTP (GET):

Dacă omiteți o astfel de expresie, aceasta va fi inclusă în interogare așa cum este - interogarea șterge toate rândurile din tabelul utilizatorilor (iar PDO și MySQLi acceptă mai multe solicitări).

Metoda PDO :: quote () nu elimină numai caractere suplimentare în șir, ci o include și în ghilimele. Și funcția mysqli_real_escape_string () elimină numai caractere suplimentare în șir și în ghilimele trebuie să fie plasate manual.

O altă metodă de protecție:

Este mai bine să folosiți expresii pregătite decât metoda PDO :: quote () și funcția mysqli_real_escape_string ().

productivitate

Atât PDO cât și MySQLi sunt executate destul de repede. MySQLi are un ușor avantaj în rezultatele testului -

2,5% pentru solicitări comune și

6,5% pentru expresiile pregătite. Deci merită să luați în considerare informațiile dacă pentru dvs. este importantă chiar și o diferență minimă în caracteristici.

concluzie

DOP a câștigat o victorie relativ ușoară în această luptă. Cu 12 drivere diferite pentru baze de date (18 baze de date diferite disponibile!) Și parametrii numiți, puteți ignora un mic decalaj de performanță. În ceea ce privește securitatea, ambele biblioteci oferă dezvoltatorului șanse egale, iar stabilitatea codului depinde numai de programator.

Ultimele 5 lecții din rubrica "PHP"

Când vine vorba de securitatea site-ul web, expresia „Filter toate, totul scăpa“ vor fi întotdeauna relevante. Astăzi, să vorbim despre filtrarea datelor.

  • Expressive 2 acceptă posibilitatea conectării altor componente ZF pe un circuit special. Nu toată lumea îi place această decizie. În acest articol, vom descrie modul de îmbunătățire a procesului de conectare a mai multor module.

  • Să presupunem că trebuie să trimiteți câteva informații în Google Analytics din scriptul de pe server. Cum se face. Răspunsul este în această notă.

  • O selecție de mai multe tipuri de nisip PHP. Pe unele veți putea să vă puneți codul online, dar există și soluții pe care le puteți implementa pe site-ul dvs.

    Pdo vs mysqli

    Prin obținerea de informații imediat prin două canale (vedere și auz), eficiența predării este mult mai mare decât învățarea din cărți. Și temele și testele online vă vor permite să gândiți în mod constant în limba pe care o învățați și să vă verificați imediat cunoștințele!

    Pdo vs mysqli

    Pdo vs mysqli

    Dacă doriți să învățați HTML mult timp, atunci am o veste bună pentru dvs.!

    Pdo vs mysqli

    Dacă ați învățat deja HTML și doriți să treceți mai departe, următorul pas este să învățați tehnologia CSS.

    Pdo vs mysqli

    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!







    Articole similare

    Trimiteți-le prietenilor: