Conexiuni moderne și sigure la baze de date cu PHP

Cuprins
Dacă există ceva care poate deteriora o aplicație, atunci când nu folosim resursele adecvate pentru ao face mai rapidă și mai sigură, există multe modalități de a îmbunătăți viteza și securitatea aplicațiilor, poate fi folosind modele de dezvoltare mai bune, aplicarea unei securități mai mari pe servere etc.
Cu toate acestea, există un punct în care de multe ori nu ne oprim să ne gândim și asta dacă instrumentul pe care ni-l oferă limba este cel mai bun pentru munca pe care o facem. Acest lucru se întâmplă foarte mult în PHP În ciuda faptului că de mulți ani a existat o alertă pentru a nu utiliza funcția mysql_connect () pentru a stabili legături către Baze de date, mulți dezvoltatori par să nu realizeze marea greșeală pe care o fac atunci când o folosesc.
PHP are suport nativ pentru un număr mare de motoare Baze de date care există pe piață, totuși integrarea sa cu MySQL este aproape un punct de plecare obligatoriu pentru majoritatea utilizatorilor.
mysql_connect ()Din versiune 5.5 de PHP funcție clasică mysql_connect () este în stare depreciat, adică este învechit și se recomandă insistent să nu-l utilizați, deoarece nu va fi inclus în versiunile viitoare ale limbajului.
Alternativa pentru a face conexiunea trece prin două elemente, primul este să folosiți aceeași structură de limbaj pentru a face conexiuni sau să utilizați noua bibliotecă pentru a vă conecta MySQL. Aici poate veni prima întrebare, de ce să ne gândim la asta MySQL? Ei bine, răspunsul este simplu, este un început, este cel mai simplu și mai util lucru pe care îl putem explica inițial, dacă cunoaștem această bază, putem extrapola la alte motoare și drivere.
Prima alternativă de conectare la Bază de date este de a utiliza propriul obiect de date al limbii numit Obiect de date PHP sau abrevierea acestuia DOP. Aceasta nu este altceva decât o extensie scrisă mare în limbă C care ne permite să stabilim conexiuni cu diferite tipuri de motoare Baze de date și că are metode standard care ne oferă posibilitatea de a scrie aplicații pe mai multe platforme, adică nu trebuie să schimbăm sintaxa dacă schimbăm motorul bazei de date.
La început am spus că ne vom concentra asupra MySQL, cu toate acestea, dacă stabilim o conexiune prin DOP ceea ce facem îl putem aplica altor motoare. Pentru aceasta trebuie doar să activăm sau să încorporăm driverele pentru motoarele menționate și să le activăm în fișier php.ini de pe server.
Pentru a vă conecta la un Bază de date trebuie doar să stabilim legătura folosind metoda adecvată pentru aceasta, în DOP conexiunea se realizează cu trei parametri de bază, numele serverului bazei de date, numele utilizatorului și parola acestuia.
Singurul parametru al acestor trei care necesită explicații este cel al serverului de baze de date, în trecut trebuia să selectăm Bază de date Printr-o funcție specifică după stabilirea conexiunii, în acest caz o vom face în același șir, astfel încât șirul nostru de nume de server ar arăta astfel:
mysql: gazdă = nume gazdă; nume db = nume db

Vedem că inițial specificăm motorul, în acest caz mysql apoi cu gazda vă vom spune care este serverul, aici poate fi un IP sau gazdă locală dacă serverul este local, în cele din urmă cu dbname trecem numele bazei de date la care dorim să ne conectăm. Vom observa în imaginea următoare cum se conectează un cod folosind DOP:

MARI

Deoarece știm pasul inițial care este cum să ne conectăm, acum trebuie să învățăm cum putem executa interogări, în mod normal, în trecut, am executat direct interogarea cu parametrii săi, această practică nu este deloc sigură, deoarece ne face predispuși la atacuri de acest tip Injecție SQL, DOP ne permite să folosim așa-numitul Stamentele pregătite ceea ce nu este altceva decât executarea interogării într-un mod parametrizat, astfel încât biblioteca însăși face o treabă de depanare și este mai puțin predispusă la atacuri. Să vedem în continuare cum să executăm o interogare simplă și apoi echivalentul acesteia cu Stament pregătit.
În această interogare simplă, vom presupune că avem un tabel în Bază de date apel Autor care primește un cod de autor și apoi numele său, desigur fiind demonstrativ nu este un exemplu de tabel bun, ne interesează doar să știm cum funcționează conexiunea de la DOP.
În imagine vedem că numim o metodă numită interogare () din obiectul creat cu șirul de conexiune PDO, atunci ne scriem interogarea fără prea multe probleme:

MARI

Problema este că primim valorile direct, deci nu există nicio modalitate de a îmbunătăți și reutiliza acest lucru, în schimb dacă facem un Stament pregătit, vom vedea că mai întâi indicăm care este interogarea de executat, apoi cu o altă metodă o facem eficientă și îi transmitem valorile necesare. Aceasta aduce în joc motorul de depanare a parametrilor. DOP oferind astfel un nivel suplimentar de protecție. Să vedem în imaginea următoare cum ar arăta exemplul anterior Stamentele pregătite acum.

MARI

La prima vedere poate părea oarecum complex și nu optim, cu toate acestea, dacă analizăm, vedem că mai întâi stabilim interogarea care urmează să fie executată, apoi creăm o matrice cu parametrii pe care interogarea noastră îi va primi, în cazul exemplului primim codul autorului și numele acestuia, în cele din urmă executăm interogarea și îi transmitem matricea de parametri.
Dacă vrem să consultăm odată ce am inserat deja câteva valori în Bază de date este foarte simplu, trebuie doar să o facem cu o interogare SELECTAȚI, acest lucru ne va permite să aducem înregistrările, în trecut depindeam de funcții precum mysql_fetch_array () sau mysql_fetch_assoc () care odată consumat ne-a lăsat în imposibilitatea de a-i gestiona din nou rezultatele.
Cu DOP Vom obține datele direct din obiect, așa că le vom avea întotdeauna disponibile în timpul execuției, să vedem în exemplul următor cum s-ar face:

Vedem cum facem inițial un Stament pregătit, facem o interogare simplă în acest caz și apoi cu o buclă in timp ce () vom obține fiecare dintre înregistrări și le vom face tipărirea, dacă observăm că nu ne referim la MySQL oriunde în codul nostru, deci dacă schimbăm șirul de conexiune și folosim un alt motor care are un tabel și un Bază de date cu același nume și structură, vom putea obține datele dvs. fără a fi nevoie să ne schimbați codul.
Ce MySQL este cel mai popular motor de baze de date cu care să se integreze PHP, există și o alternativă și este MySQLi care nu este altceva decât o interfață orientată obiect. Modul său de lucru este foarte asemănător cu cel al DOPCu toate acestea, ceea ce se schimbă este că este doar pentru acest popular motor de baze de date, deci nu ar fi posibilă o conversie pe mai multe platforme.
Șirul său de conexiune este puțin mai puțin complex, deoarece împarte numele serverului în gazdă și baza de date care urmează să fie utilizată în doi parametri diferiți, pe lângă numele și parola utilizatorului, să vedem cum arată:
$ objConex = mysqli nou (HostName, utilizator, parolă, DatabaseName);

Să vedem în exemplul următor cum stabilim o conexiune folosind MySQLi și cum putem realiza o inserare simplă de date:

MARI

Observăm că există o asemănare cu DOP prin a avea o metodă interogare () de asemenea, totuși acest lucru va funcționa numai pentru MySQL.
Acum vom primi și vom itera datele pe care le putem obține dintr-o interogare, pentru aceasta vom folosi aceeași metodă interogare () și apoi metoda fetch_assoc () pentru a obține rezultatele:

Cel mai interesant lucru pe care l-am observat este că folosim metoda închide (), ceea ce face este să închidă conexiunea curentă și să curățe tamponul în așa fel încât să optimizeze utilizarea resurselor serverului.
ImportantTrebuie să avem în vedere că, dacă avem un sistem realizat într-o versiune veche a PHP și nu vom migra la versiuni noi, poate schimba șirurile de conexiune la Bază de date iar metodele de interogare pot să nu fie o idee bună pentru munca pe care o reprezintă. Cu toate acestea, dacă dorim să creăm noi aplicații și sisteme, cel mai bine este să începem cu o bază solidă folosind aceste noi biblioteci cu suport în versiunile viitoare ale PHP.
Cu aceasta încheiem acest tutorial, am văzut că noile alternative sunt mult mai curate și mai sigure, iar ușurința lor de utilizare le face potrivite pentru vremurile actuale.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave