logo

Uvod u PHP PDO

PHP je open-source skriptni jezik opće namjene koji se naširoko koristi za stvaranje dinamičnih i interaktivnih web stranica. PHP može pristupiti velikom broju sustava za upravljanje relacijskim bazama podataka kao što su MYSQL, SQLite , i PostgreSQL . The PHP 5.1 verzija je ponudila novu biblioteku apstrakcije povezivanja baze podataka, koja je PHP podatkovni objekti (PDO).

Što je PDO?

PDO se odnosi na PHP podatkovni objekt , što je PHP proširenje koje definira lagano i dosljedno sučelje za pristup bazi podataka u PHP-u. To je skup PHP ekstenzija koje pružaju temeljnu PDO klasu i upravljački program specifičan za bazu podataka. Svaki upravljački program baze podataka može izložiti značajke specifične za bazu podataka kao regularnu funkciju proširenja koja implementira PDO sučelje.

inttostr java

Napomena: Ne možemo izvršiti bilo koju vrstu funkcije baze podataka pomoću samog PDO proširenja. Za pristup poslužitelju baze podataka moramo koristiti PDO upravljački program specifičan za bazu podataka.

PDO se uglavnom fokusira na apstrakciju pristupa podacima, a ne na apstrakciju baze podataka. Pruža sloj apstrakcije pristupa podacima , što znači da, bez obzira koju bazu podataka koristimo, moramo koristiti iste funkcije koje pruža ta baza podataka za postavljanje upita i dohvaćanje podataka. PDO ne pruža apstrakciju podataka jer ne prepisuje SQL niti oponaša značajke koje nedostaju.

Prednost PDO

PDO pruža različite načine rada s objektima i dohvaća pripremljene izjave koje znatno olakšavaju rad. To je alat za pristup bazi podataka u PHP-u putem kojeg omogućujemo jedinstveni pristup kroz više baza podataka.

PDO omogućuje razmjerno besprijekorno prebacivanje između različitih baza podataka i platformi, što se lako može učiniti promjenom niza veze. Ne podržava sintakse specifične za bazu podataka.

Postoje neke prednosti PDO-a kako slijedi:

    Podrška za baze podataka
    PDO proširenje može pristupiti bilo kojoj bazi podataka koja je napisana za PDO upravljački program. Dostupno je nekoliko PDO upravljačkih programa koji se koriste za FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, Oracle Call Interface, Firebird/Interbase 6 , i PostgreSQL baze podataka, između mnogih drugih.
    Upravljački programi nisu automatski dostupni u svakom sustavu, pa moramo pronaći dostupne upravljačke programe i dodati ih kada nam zatrebaju.Povezivanje baze podataka
    Za uspostavljanje veze s bazom podataka dostupne su različite sintakse. Ove sintakse ovise o određenim bazama podataka. Dok koristite PDO, operacije moraju biti umotane u blokove try/catch i koristiti tehniku ​​iznimke.
    Obično je potrebno stvoriti samo jednu vezu, a te se veze zatvaraju programiranjem baze podataka da se postavi kao null.Rješavanje grešaka
    PDO dopušta korištenje iznimaka za obradu pogrešaka. Da bi proizveo iznimku, PDO se može prisiliti na relevantni atribut načina pogreške.
    Postoje tri načina greške, tj. Tiho (zadano), Upozorenje , i Iznimka . Upozorenje i iznimka su korisniji u DRY programiranju.
      Tiho- To je zadani način pogreške.Upozorenje- Korisno je za otklanjanje pogrešaka.Iznimka- Ovaj način rada omogućuje graciozno rukovanje pogreškama dok skriva podatke koje bi osoba mogla iskoristiti za iskorištavanje vašeg sustava.
    Umetni i ažuriraj
    PDO smanjuje često korištenu operaciju umetanja i ažuriranja baze podataka u proces u dva koraka, tj.
    Pripremi >> [Uveži] >> Izvrši.
    Kroz ovu metodu, možemo u potpunosti iskoristiti PDO pripremljene izjave, koje štite od zlonamjernih napada putem SQL injekcije.
    Pripremljene izjave su unaprijed kompajlirane SQL izjave koje se mogu izvršiti više puta slanjem ovih podataka na poslužitelj. Ovi podaci, koji se koriste unutar rezerviranog mjesta, automatski su zaštićeni od napada SQL injekcijom.

Prednosti korištenja PDO

PDO je izvorni upravljački program baze podataka. Postoje neke prednosti korištenja PDO-a koje su navedene u nastavku:

    Upotrebljivost- Sadrži mnoge pomoćne funkcije za upravljanje automatskim rutinskim operacijama.Ponovno korištenje- Nudi objedinjeni API za pristup više baza podataka.Sigurnost- Koristi pripremljenu izjavu koja štiti od SQL injekcije. Pripremljena izjava je unaprijed kompilirana SQL izjava koja odvaja instrukciju SQL izjave od podataka.

PDO klase

Postoje tri PDO klase, koje su navedene u nastavku:

    PDO- Predstavlja vezu između PHP-a i baze podataka.PDOStatement- Predstavlja pripremljenu naredbu i nakon izvršenja naredbe postavlja pridruženi rezultat.PDOException- Predstavlja pogreške koje je pokrenuo PDO.

Baze podataka koje podržava PDO

  1. MySQL
  2. PostgreSQL
  3. Oracle
  4. Žar ptica
  5. MS SQL poslužitelj
  6. Sybase
  7. Informix
  8. IBM
  9. FreeTDS
  10. SQLite
  11. Cubrid
  12. 4D

Usporedba između PDO i MySQLi

Za pristup bazi podataka pomoću PHP-a imamo uglavnom dvije opcije - MySQLi i PDO (PHP podatkovni objekt). MySQLi je izvorni za PHP koji pruža brže performanse, dok većina iskusnih programera radije radi s PDO jer podržava široku paletu upravljačkih programa baze podataka. Postoje neke razlike između PDO i MySQLi navedene u nastavku na temelju njihovih značajki.

Značajke PDO MySQLi
Podrška za DB 12 različitih vozača Samo MySQL
Veza Lako Lako
API OTVOREN OOP + postupak
Izvođenje Brzo Brzo
Imenovani parametar Da Ne
Mapiranje objekata Da Da
Pohranjeni postupak Da Da
Izjave pripremljene na strani klijenta Da Ne
Sigurnost Sigurniji od MySQLi. Sigurno, ali ne više od PDO.

Što bi trebalo preferirati između PDO ili MySQLi?

I PDO i MySQLi imaju svoje prednosti:

  • Kao što smo ranije vidjeli, PDO radi na 12 različitih sustava baza podataka, dok MySQL može raditi samo s MySQL bazom podataka. Dakle, ako želimo prebaciti naš projekt na drugu bazu podataka, PDO to olakšava. U MySQLiju moramo ponovno napisati cijeli kod.
  • PDO i MySQLi su objektno orijentirani, ali MySQLi nudi i proceduralni API. Oba podržavaju pripremljene izjave. Pripremljeni iskazi važni su za sigurnost web aplikacije jer štite od ubacivanja SQL-a.

Zahtjev

Nema potrebe za vanjskim bibliotekama za izgradnju ovog proširenja.

Proces instalacije

Korak 1: Preuzmite najnoviji XAMPP poslužitelj odavde https://www.apachefriends.org/download.html za različite platforme kao što su Windows, Linux i MacOS.

Phppdo

Napomena: Ovdje ćemo raspravljati o procesu instalacije samo za Windows OS.

Korak 2: Instalirajte XAMPP poslužitelj na svoj sustav slijedeći ove korake.

niz za char
Phppdo

Korak 3: Odaberite komponente koje želite instalirati i kliknite na gumb Dalje.

Phppdo

Korak 4: Napravite novu mapu s nazivom xampp na mjestu gdje želite instalirati XAMPP.

Phppdo

Korak 5: Ovdje kliknite Dalje i krenite naprijed. Odavde će započeti instalacija XAMPP poslužitelja.

1 od 1000
Phppdo

Korak 6: XAMPP je uspješno instaliran. Pritisnite gumb Završi.

Phppdo

Korak 7: Odaberite željeni jezik.

Phppdo

Korak 8: Odavde pokrenite Apache poslužitelj i MySQL (prema danoj snimci zaslona).

Phppdo

Korak 9: Sada otvorite php.ini iz C:/xampp/php/php.ini (gdje ste instalirali svoj XAMPP) i odkomentirajte proširenje 'php_pdo_mysql.dll' i 'php_pdo.dll' (ako radite s MySQL bazom podataka), ili 'php_pdo_oci.dll' (ako radite s Oracle bazom podataka). Sada počnite raditi s bazom podataka. U višoj verziji PHP 5.1 već je postavljen.

Rad sa PDO

Prvo moramo kreirati bazu podataka, pa odavde kreirajte bazu podataka pod imenom myDB.

Phppdo

Veza s bazom podataka

Veza s bazom podataka uvijek je potrebna za interakciju s bazom podataka. Dakle, moramo znati identifikator za pristup bazi podataka, tj. lokaciju baze podataka, naziv baze podataka, korisničko ime i lozinku.

Sada izradite program za povezivanje baze podataka koristeći PDO u bilo kojem uređivaču teksta kao što je notepad ili notepad++ i spremite ga pod imenom coonection.php. Pokrenite ga na XAMPP poslužitelju koristeći localhost/80.

Primjer

 getMessage(); } ?> 

Izlaz

Pokrenite ga na poslužitelju koristeći sljedeći URL localhost/Xampp/pdoexample/connection.php/ ili gdje ste spremili svoj program.

Phppdo

Rukovanje pogreškom veze

Objekt PDOException bit će izbačen ako postoji bilo kakva pogreška veze. Možemo uhvatiti iznimku ako želimo obraditi stanje pogreške ili je možemo prepustiti globalnom rukovatelju iznimkama koji može postaviti set_exception_handler() funkcija.

jpa u proljeće

Primjer

U ovom primjeru, dbUser(user-id) je pogrešan, pa će izbaciti iznimku, kao što možemo vidjeti u izlazu.

 setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); Echo 'Successfully connected with myDB database'; } catch(Exception $e){ Echo 'Connection failed' . $e->getMessage(); } ?> 
Phppdo

Zatvaranje veze s bazom podataka

 getMessage(); } // this command close the connection. $dbConn = null; ?> 

Izlaz

Phppdo