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:
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.
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č.
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.
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
Razredi PDO
Obstajajo trije razredi ZOP, ki so navedeni spodaj:
Baze podatkov, ki jih podpira PDO
- MySQL
- PostgreSQL
- Oracle
- Firebird
- MS SQL strežnik
- Sybase
- Informix
- IBM
- FreeTDS
- SQLite
- Cubrid
- 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.
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
3. korak: Izberite komponente, ki jih želite namestiti, in kliknite gumb Naprej.
4. korak: Ustvarite novo mapo z imenom xampp na mestu, kjer želite namestiti XAMPP.
5. korak: Tukaj kliknite Naprej in se pomaknite naprej. Namestitev strežnika XAMPP se bo začela od tu.
javascript base64 decode
6. korak: XAMPP je uspešno nameščen. Kliknite gumb Dokončaj.
7. korak: Izberite želeni jezik.
8. korak: Zaženite strežnik Apache in MySQL od tukaj (kot na danem posnetku zaslona).
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.
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.
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(); } ?>
Zapiranje povezave z bazo podatkov
getMessage(); } // this command close the connection. $dbConn = null; ?>
Izhod