PHP este un limbaj de scripting de uz general open-source, care este utilizat pe scară largă pentru crearea de pagini web dinamice și interactive. PHP poate accesa o gamă largă de sisteme de gestionare a bazelor de date relaționale, cum ar fi MYSQL, SQLite , și PostgreSQL . The PHP 5.1 versiunea a oferit o nouă bibliotecă de abstractizare a conexiunii la baza de date, care este Obiecte de date PHP (DOP).
Ce este DOP?
DOP se referă la Obiect de date PHP , care este o extensie PHP care definește o interfață ușoară și consistentă pentru accesarea unei baze de date în PHP. Este un set de extensii PHP care oferă o clasă PDO de bază și un driver specific bazei de date. Fiecare driver de bază de date poate expune caracteristici specifice bazei de date ca o funcție de extensie obișnuită care implementează interfața PDO.
Notă: Nu putem efectua niciun tip de funcție de bază de date folosind extensia PDO în sine. Pentru a accesa un server de baze de date, trebuie să folosim un driver PDO specific bazei de date.
PDO se concentrează în principal pe abstracția accesului la date, mai degrabă decât pe abstracția bazei de date. Oferă stratul de abstracție a accesului la date , ceea ce înseamnă că, indiferent de baza de date pe care o folosim, trebuie să folosim aceleași funcții oferite de acea bază de date pentru a emite interogări și a prelua date. PDO nu furnizează abstracția datelor, deoarece nu rescrie SQL-ul și nu emulează caracteristicile lipsă.
Avantajul DOP
PDO oferă diferite moduri de a lucra cu obiecte și preia instrucțiuni pregătite care fac munca mult mai ușoară. Este un instrument de acces la baze de date în PHP prin care permitem accesul uniform în mai multe baze de date.
PDO permite comutarea relativ simplă între diferite baze de date și platforme, ceea ce poate fi făcut cu ușurință prin schimbarea șirului de conexiune. Nu acceptă sintaxe specifice bazei de date.
Există câteva avantaje ale DOP, după cum urmează:
Extensia PDO poate accesa orice bază de date scrisă pentru driverul PDO. Există mai multe drivere PDO disponibile pentru care sunt utilizate FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, Oracle Call Interface, Firebird/Interbase 6 , și PostgreSQL baze de date, printre multe altele.
Driverele nu sunt disponibile automat în fiecare sistem, așa că trebuie să găsim driverele disponibile și să le adăugăm atunci când avem nevoie de ele.
Există diferite sintaxe disponibile pentru a stabili conexiunea la baza de date. Aceste sintaxe depind de baze de date specifice. În timpul utilizării PDO, operațiunile trebuie să fie împachetate în blocuri try/catch și să utilizeze tehnica excepției.
De obicei, trebuie creată o singură conexiune, iar aceste conexiuni sunt închise prin programarea bazei de date pentru a fi setată ca nulă.
PDO permite utilizarea excepțiilor pentru tratarea erorilor. Pentru a produce o excepție, PDO poate fi forțat într-un atribut relevant pentru modul de eroare.
Există trei moduri de eroare, adică Tăcut (Mod implicit), Avertizare , și Excepție . Avertismentul și Excepția sunt mai utile în programarea DRY.
PDO reduce operația de inserare și actualizare a bazei de date folosită în mod obișnuit într-un proces în doi pași, de exemplu.
Pregătiți >> [Legați] >> Executați.
Prin această metodă, putem profita din plin de instrucțiunile pregătite de PDO, care protejează împotriva atacurilor rău intenționate prin injecție SQL.
Declarațiile pregătite sunt instrucțiuni SQL pre-compilate care pot fi executate de mai multe ori prin trimiterea acestor date către server. Aceste date, care sunt utilizate în cadrul substituentului, sunt protejate automat de atacul de injecție SQL.
Beneficiile utilizării DOP
PDO este driverul nativ al bazei de date. Există câteva beneficii ale utilizării PDO, care sunt prezentate mai jos:
Clasele DOP
Există trei clase DOP, care sunt prezentate mai jos:
Baze de date suportate de PDO
- MySQL
- PostgreSQL
- Oracol
- Pasăre de foc
- MS SQL Server
- Sybase
- Informix
- IBM
- FreeTDS
- SQLite
- Cubrid
- 4D
Comparație între PDO și MySQLi
Pentru a accesa baza de date folosind PHP, avem în principal două opțiuni - MySQLi și DOP (Obiect de date PHP). MySQLi este un nativ pentru PHP care oferă performanțe mai rapide, în timp ce majoritatea dezvoltatorilor experimentați preferă să lucreze cu PDO, deoarece acceptă o mare varietate de drivere de baze de date. Există unele diferențe între PDO și MySQLi enumerate mai jos pe baza caracteristicilor lor.
Caracteristici | DOP | MySQLi |
---|---|---|
Suport DB | 12 drivere diferite | Doar MySQL |
Conexiune | Uşor | Uşor |
API | DESCHIS | OOP + Procedură |
Performanţă | Rapid | Rapid |
Parametru numit | da | Nu |
Maparea obiectelor | da | da |
Procedură stocată | da | da |
Declarații pregătite de partea clientului | da | Nu |
Securitate | Mai sigur decât MySQLi. | Securizat, dar nu mai mult decât DOP. |
Care ar trebui să fie preferat între PDO sau MySQLi?
Atât PDO cât și MySQLi au propriile lor avantaje:
- După cum am văzut mai devreme, PDO funcționează pe 12 sisteme de baze de date diferite, în timp ce MySQL poate funcționa numai cu baza de date MySQL. Deci, dacă vrem să trecem proiectul nostru într-o altă bază de date, PDO ne ușurează. În MySQLi, trebuie să rescriem întregul cod.
- PDO și MySQLi sunt ambele orientate pe obiecte, dar MySQLi oferă și API procedurale. Ambele acceptă declarațiile pregătite. Declarațiile pregătite sunt importante pentru securitatea aplicației web, deoarece protejează împotriva injectării SQL.
Cerinţă
Nu este nevoie de biblioteci externe pentru a construi această extensie.
Procesul de instalare
Pasul 1: Descărcați cel mai recent server XAMPP de aici https://www.apachefriends.org/download.html pentru diferite platforme precum Windows, Linux și MacOS.
Notă: Aici vom discuta despre procesul de instalare numai pentru sistemul de operare Windows.
Pasul 2: Instalați serverul XAMPP pe sistemul dvs. urmând acești pași.
recursiunea în java
Pasul 3: Selectați componentele pe care doriți să le instalați și faceți clic pe butonul Următorul.
Pasul 4: Creați noul folder cu numele xampp în locația în care doriți să instalați XAMPP.
Pasul 5: Faceți clic pe Următorul aici și mergeți mai departe. Instalarea serverului XAMPP va începe de aici.
Pasul 6: XAMPP este instalat cu succes. Faceți clic pe butonul Terminare.
Pasul 7: Selectați limba preferată.
Pasul 8: Rulați serverul Apache și MySQL de aici (conform capturii de ecran date).
Pasul 9: Acum, deschideți php.ini de la C:/xampp/php/php.ini (unde ați instalat XAMPP) și decomentați extensia „php_pdo_mysql.dll” și „php_pdo.dll” (dacă lucrați cu baza de date MySQL) sau „php_pdo_oci.dll” (dacă lucrați cu baza de date Oracle). Acum, începeți să lucrați cu baza de date. În versiunea superioară a PHP 5.1, este deja setat.
Lucrul cu DOP
În primul rând, trebuie să creăm o bază de date, deci creați o bază de date cu numele myDB de aici.
Conexiune la baza de date
O conexiune la baza de date este întotdeauna necesară pentru a interacționa cu baza de date. Deci, trebuie să cunoaștem identificatorul pentru a accesa baza de date, adică locația bazei de date, numele bazei de date, numele de utilizator și parola.
Acum, creați programul de conectare la baza de date folosind PDO în orice editor de text, cum ar fi notepad sau notepad++ și salvați-l cu numele coonection.php. Rulați-l pe serverul XAMPP folosind localhost/80.
Exemplu
getMessage(); } ?>
Ieșire
Rulați-l pe server folosind următoarea adresă URL localhost/Xampp/pdoexample/connection.php/ sau unde ați salvat programul.
Gestionarea erorii de conectare
Un obiect PDOException va fi aruncat dacă există vreo eroare de conexiune. Putem prinde excepția dacă dorim să gestionăm condiția de eroare, sau o putem lăsa, de asemenea, la gestionarea excepțiilor globale, care poate fi configurată de set_exception_handler() funcţie.
Exemplu
În acest exemplu, dbUser(user-id) este greșit, așa că va arunca o excepție, așa cum putem vedea în rezultat.
matrice.din java
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); Echo 'Successfully connected with myDB database'; } catch(Exception $e){ Echo 'Connection failed' . $e->getMessage(); } ?>
Închiderea conexiunii la baza de date
getMessage(); } // this command close the connection. $dbConn = null; ?>
Ieșire