logo

Uvod v PHP PDO

PHP je odprtokodni skriptni jezik za splošno uporabo, ki se pogosto uporablja za ustvarjanje dinamičnih in interaktivnih spletnih strani. PHP lahko dostopa do številnih sistemov za upravljanje relacijskih baz podatkov, kot je npr MYSQL, SQLite , in PostgreSQL . The PHP 5.1 različica ponudila novo knjižnico abstrakcij povezav baze podatkov, ki je Podatkovni objekti PHP (ZOP).

Kaj je ZOP?

ZOP se nanaša na Podatkovni objekt PHP , ki je razširitev PHP, ki definira lahek in dosleden vmesnik za dostop do baze podatkov v PHP. Je nabor razširitev PHP, ki zagotavljajo osnovni razred PDO in gonilnik, specifičen za bazo podatkov. Vsak gonilnik baze podatkov lahko izpostavi funkcije, specifične za bazo podatkov, kot običajno razširitveno funkcijo, ki implementira vmesnik PDO.

Opomba: s samo razširitvijo PDO ne moremo izvesti nobene vrste funkcij baze podatkov. Za dostop do strežnika baze podatkov moramo uporabiti gonilnik PDO, specifičen za bazo podatkov.

PDO se osredotoča predvsem na abstrakcijo dostopa do podatkov in ne na abstrakcijo baze podatkov. Zagotavlja plast abstrakcije dostopa do podatkov , kar pomeni, da moramo ne glede na to, katero zbirko podatkov uporabljamo, uporabljati iste funkcije, ki jih ponuja ta zbirka podatkov, za izdajanje poizvedb in pridobivanje podatkov. PDO ne zagotavlja abstrakcije podatkov, saj ne prepisuje SQL ali posnema manjkajočih funkcij.

Prednost ZOP

PDO ponuja različne načine dela z objekti in pridobivanje pripravljenih stavkov, ki zelo olajšajo delo. Je orodje za dostop do podatkovnih baz v PHP, s katerim omogočamo enoten dostop do več podatkovnih baz.

PDO omogoča sorazmerno brezhibno preklapljanje med različnimi zbirkami podatkov in platformami, kar je mogoče preprosto narediti s spremembo povezovalnega niza. Ne podpira sintakse, specifične za bazo podatkov.

ZOP ima naslednje prednosti:

    Podpora za baze podatkov
    Razširitev PDO lahko dostopa do katere koli zbirke podatkov, ki je napisana za gonilnik PDO. Na voljo je več gonilnikov PDO, ki se uporabljajo za FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, Oracle Call Interface, Firebird/Interbase 6 , in PostgreSQL baze podatkov, med mnogimi drugimi.
    Gonilniki niso samodejno na voljo v vsakem sistemu, zato moramo poiskati razpoložljive gonilnike in jih dodati, ko jih potrebujemo.Povezovanje baze podatkov
    Za vzpostavitev povezave z bazo podatkov so na voljo različne sintakse. Te sintakse so odvisne od specifičnih baz podatkov. Med uporabo PDO morajo biti operacije zavite v bloke poskusi/ulovi in ​​uporabiti tehniko izjeme.
    Običajno je treba ustvariti samo eno povezavo in te povezave se zaprejo s programiranjem baze podatkov, da se nastavi na nič.Obravnava napak
    PDO dovoljuje uporabo izjem za obravnavanje napak. Za ustvarjanje izjeme se lahko PDO vsili v ustrezen atribut načina napake.
    Obstajajo trije načini napake, tj. Tiho (privzeto), Opozorilo , in Izjema . Opozorilo in izjema sta bolj uporabna pri programiranju DRY.
      Tiho- To je privzeti način napake.Opozorilo- Uporaben je za odpravljanje napak.Izjema- Ta način omogoča elegantno obravnavo napak, medtem ko skriva podatke, ki bi jih oseba lahko uporabila za izkoriščanje vašega sistema.
    Vstavi in ​​posodobi
    ZOP zmanjša pogosto uporabljeno operacijo vstavljanja in posodabljanja baze podatkov v dvostopenjski postopek, tj.
    Pripravi >> [Bind] >> Execute.
    S to metodo lahko v celoti izkoristimo pripravljene izjave PDO, ki ščitijo pred zlonamernimi napadi prek vbrizgavanja SQL.
    Pripravljeni stavki so vnaprej prevedeni stavki SQL, ki jih je mogoče večkrat izvesti s pošiljanjem teh podatkov strežniku. Ti podatki, ki se uporabljajo znotraj označbe mesta, so samodejno zaščiteni pred napadom z vbrizgavanjem SQL.

Prednosti uporabe ZOP

PDO je izvorni gonilnik baze podatkov. Spodaj je navedenih nekaj prednosti uporabe ZOP:

java povratni niz
    Uporabnost- Vsebuje številne pomožne funkcije za upravljanje samodejnih rutinskih operacij.Ponovno uporabnost- Ponuja enoten API za dostop do več baz podatkov.Varnost- Uporablja pripravljeno izjavo, ki ščiti pred vbrizgavanjem SQL. Pripravljen stavek je vnaprej preveden stavek SQL, ki loči navodilo stavka SQL od podatkov.

Razredi PDO

Obstajajo trije razredi ZOP, ki so navedeni spodaj:

    ZOP- Predstavlja povezavo med PHP in bazo podatkov.PDOStatement- Predstavlja pripravljen stavek in po izvedbi stavka nastavi pripadajoči rezultat.PDOException- Predstavlja napake, ki jih povzroči ZOP.

Baze podatkov, ki jih podpira PDO

  1. MySQL
  2. PostgreSQL
  3. Oracle
  4. Firebird
  5. MS SQL strežnik
  6. Sybase
  7. Informix
  8. IBM
  9. FreeTDS
  10. SQLite
  11. Cubrid
  12. 4D

Primerjava med ZOP in MySQLi

Za dostop do podatkovne baze s pomočjo PHP imamo predvsem dve možnosti - MySQLi in ZOP (PHP Data Object). MySQLi je izviren za PHP, ki zagotavlja hitrejše delovanje, medtem ko večina izkušenih razvijalcev raje dela z PDO, saj podpira široko paleto gonilnikov baze podatkov. Obstaja nekaj razlik med PDO in MySQLi, ki so navedene spodaj glede na njune značilnosti.

Lastnosti ZOP MySQLi
Podpora za DB 12 različnih voznikov Samo MySQL
Povezava enostavno enostavno
API ODPRTO OOP + postopek
Izvedba hitro hitro
Imenovani parameter ja št
Preslikava objektov ja ja
Shranjeni postopek ja ja
Izjave, pripravljene na strani odjemalca ja št
Varnost Bolj varen kot MySQLi. Varno, vendar ne več kot PDO.

Kaj bi bilo bolje med PDO ali MySQLi?

Tako PDO kot MySQLi imata svoje prednosti:

  • Kot smo že videli, PDO deluje na 12 različnih sistemih baz podatkov, medtem ko lahko MySQL deluje samo z bazo podatkov MySQL. Torej, če želimo naš projekt preklopiti na drugo bazo podatkov, PDO to olajša. V MySQLi moramo ponovno napisati celotno kodo.
  • PDO in MySQLi sta objektno usmerjena, vendar MySQLi ponuja tudi proceduralni API. Oba podpirata pripravljene izjave. Pripravljene izjave so pomembne za varnost spletnih aplikacij, saj ščitijo pred vbrizgavanjem SQL.

Zahteva

Za izdelavo te razširitve niso potrebne zunanje knjižnice.

Postopek namestitve

Korak 1: Prenesite najnovejši strežnik XAMPP od tukaj https://www.apachefriends.org/download.html za različne platforme, kot so Windows, Linux in MacOS.

Phppdo

Opomba: tukaj bomo obravnavali postopek namestitve samo za operacijski sistem Windows.

2. korak: Namestite strežnik XAMPP v vaš sistem tako, da sledite tem korakom.

niz v cela števila
Phppdo

3. korak: Izberite komponente, ki jih želite namestiti, in kliknite gumb Naprej.

Phppdo

4. korak: Ustvarite novo mapo z imenom xampp na mestu, kjer želite namestiti XAMPP.

Phppdo

5. korak: Tukaj kliknite Naprej in se pomaknite naprej. Namestitev strežnika XAMPP se bo začela od tu.

javascript base64 decode
Phppdo

6. korak: XAMPP je uspešno nameščen. Kliknite gumb Dokončaj.

Phppdo

7. korak: Izberite želeni jezik.

Phppdo

8. korak: Zaženite strežnik Apache in MySQL od tukaj (kot na danem posnetku zaslona).

Phppdo

9. korak: Zdaj odprite php.ini iz C:/xampp/php/php.ini (kjer ste namestili svoj XAMPP) in odkomentirajte razširitev 'php_pdo_mysql.dll' in 'php_pdo.dll' (če delate z bazo MySQL), oz 'php_pdo_oci.dll' (če delate z bazo podatkov Oracle). Zdaj pa začnite delati z bazo podatkov. V zgornji različici PHP 5.1 je že nastavljen.

Delo z ZOP

Najprej moramo ustvariti bazo podatkov, zato ustvarite bazo podatkov z imenom myDB od tukaj.

Phppdo

Povezava z bazo podatkov

Za interakcijo z bazo podatkov je vedno potrebna povezava z bazo podatkov. Zato moramo poznati identifikator za dostop do baze podatkov, to je lokacijo baze podatkov, ime baze podatkov, uporabniško ime in geslo.

Zdaj ustvarite program za povezavo z bazo podatkov z uporabo PDO v katerem koli urejevalniku besedil, kot je notepad ali notepad++, in ga shranite pod imenom coonection.php. Zaženite ga na strežniku XAMPP z uporabo localhost/80.

Primer

 getMessage(); } ?> 

Izhod

Zaženite ga na strežniku z naslednjim URL-jem localhost/Xampp/pdoexample/connection.php/ ali kje ste shranili svoj program.

Phppdo

Obravnava napake povezave

Objekt PDOException bo vržen, če pride do kakršne koli napake pri povezavi. Izjemo lahko ujamemo, če želimo obravnavati stanje napake, ali pa jo prepustimo globalnemu obdelovalcu izjem, ki ga lahko nastavi set_exception_handler() funkcijo.

aplikacije za računalništvo v oblaku

Primer

V tem primeru je dbUser(user-id) napačen, zato bo vrgel izjemo, kot lahko vidimo v izhodu.

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

Zapiranje povezave z bazo podatkov

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

Izhod

Phppdo