logo

Úvod do PHP PDO

PHP je open source univerzálny skriptovací jazyk, ktorý sa široko používa na vytváranie dynamických a interaktívnych webových stránok. PHP dokáže pristupovať k veľkému množstvu systémov správy relačných databáz ako napr MYSQL, SQLite , a PostgreSQL . The PHP 5.1 verzia ponúkla novú knižnicu abstrakcie pripojenia k databáze, ktorá je Dátové objekty PHP (CHOP).

Čo je CHOP?

CHOP odkazuje na Dátový objekt PHP , čo je rozšírenie PHP, ktoré definuje ľahké a konzistentné rozhranie pre prístup k databáze v PHP. Je to sada rozšírení PHP, ktoré poskytujú základnú triedu PDO a ovládač špecifický pre databázu. Každý databázový ovládač môže vystaviť funkcie špecifické pre databázu ako bežnú rozširujúcu funkciu, ktorá implementuje rozhranie PDO.

zlučovací druh

Poznámka: Nemôžeme vykonávať žiadny typ databázovej funkcie pomocou samotného rozšírenia PDO. Na prístup k databázovému serveru musíme použiť ovládač PDO špecifický pre databázu.

PDO sa zameriava hlavne na abstrakciu prístupu k údajom a nie na abstrakciu databázy. To poskytuje vrstva abstrakcie prístupu k údajom , čo znamená, že bez ohľadu na to, ktorú databázu používame, musíme na zadávanie dopytov a získavanie údajov používať rovnaké funkcie, ktoré poskytuje táto databáza. PDO neposkytuje abstrakciu údajov, pretože neprepisuje SQL ani neemuluje chýbajúce funkcie.

Výhoda CHOP

PDO poskytuje rôzne spôsoby práce s objektmi a získava pripravené výpisy, ktoré značne uľahčujú prácu. Ide o databázový prístupový nástroj v PHP, prostredníctvom ktorého umožňujeme jednotný prístup naprieč viacerými databázami.

PDO umožňuje pomerne bezproblémové prepínanie medzi rôznymi databázami a platformami, čo sa dá jednoducho urobiť zmenou pripájacieho reťazca. Nepodporuje syntaxe špecifické pre databázu.

Existuje niekoľko výhod CHOP:

    Podpora databázy
    Rozšírenie PDO má prístup k akejkoľvek databáze, ktorá je napísaná pre ovládač PDO. K dispozícii je niekoľko ovládačov PDO, ktoré sa používajú FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, Oracle Call Interface, Firebird/Interbase 6 , a PostgreSQL databázy, medzi mnohými ďalšími.
    Ovládače nie sú dostupné v každom systéme automaticky, takže musíme nájsť dostupné ovládače a pridať ich, keď ich potrebujeme.Pripojenie k databáze
    Na vytvorenie pripojenia k databáze sú k dispozícii rôzne syntaxe. Tieto syntaxe závisia od konkrétnych databáz. Pri používaní PDO musia byť operácie zabalené do blokov try/catch a musia využívať techniku ​​výnimiek.
    Zvyčajne je potrebné vytvoriť iba jedno pripojenie a tieto pripojenia sa uzatvoria naprogramovaním databázy na hodnotu null.Spracovanie chýb
    PDO povoľuje používať výnimky na spracovanie chýb. Aby sa vytvorila výnimka, PDO môže byť vynútené do príslušného atribútu chybového režimu.
    Existujú tri chybové režimy, napr. Tichý (predvolené), POZOR , a Výnimka . Varovanie a Výnimka sú užitočnejšie pri programovaní DRY.
      Tichý- Je to predvolený chybový režim.POZOR- Je to užitočné pre ladenie.Výnimka- Tento režim umožňuje elegantné spracovanie chýb a zároveň skrýva údaje, ktoré by niekto mohol použiť na zneužitie vášho systému.
    Vložiť a aktualizovať
    PDO redukuje bežne používanú operáciu vkladania a aktualizácie databázy na dvojkrokový proces, t.j.
    Pripraviť >> [Zviazať] >> Spustiť.
    Prostredníctvom tejto metódy môžeme naplno využiť pripravené príkazy PDO, ktoré chránia pred škodlivými útokmi prostredníctvom SQL injection.
    Pripravené príkazy sú predkompilované príkazy SQL, ktoré možno vykonať viackrát odoslaním týchto údajov na server. Tieto údaje, ktoré sa používajú v rámci zástupného symbolu, sú automaticky chránené pred útokom SQL injection.

Výhody používania CHOP

PDO je natívny databázový ovládač. Existuje niekoľko výhod používania CHOP, ktoré sú uvedené nižšie:

    Použiteľnosť- Obsahuje mnoho pomocných funkcií na obsluhu automatických rutinných operácií.Opätovná použiteľnosť- Ponúka jednotné API na prístup k viacerým databázam.Bezpečnosť- Používa pripravený príkaz, ktorý chráni pred injekciou SQL. Pripravený príkaz je predkompilovaný príkaz SQL, ktorý oddeľuje inštrukciu príkazu SQL od údajov.

Triedy CHOP

Existujú tri triedy CHOP, ktoré sú uvedené nižšie:

    CHOP- Predstavuje spojenie medzi PHP a databázou.PDOSstatement- Predstavuje pripravený výpis a po vykonaní príkazu nastaví príslušný výsledok.Výnimka PDO- Predstavuje chyby spôsobené CHOP.

Databázy podporované PDO

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

Porovnanie medzi PDO a MySQLi

Na prístup k databáze pomocou PHP máme hlavne dve možnosti - MySQLi a CHOP (údajový objekt PHP). MySQLi je natívny pre PHP, ktorý poskytuje rýchlejší výkon, zatiaľ čo väčšina skúsených vývojárov uprednostňuje prácu s PDO, pretože podporuje širokú škálu databázových ovládačov. Existujú určité rozdiely medzi PDO a MySQLi uvedenými nižšie na základe ich vlastností.

Vlastnosti CHOP MySQLi
Podpora DB 12 rôznych ovládačov Iba MySQL
Pripojenie Jednoduché Jednoduché
API OTVORENÉ OOP + postup
Výkon Rýchlo Rýchlo
Pomenovaný parameter Áno Nie
Mapovanie objektov Áno Áno
Uložená procedúra Áno Áno
Vyhlásenia pripravené na strane klienta Áno Nie
Bezpečnosť Bezpečnejšie ako MySQLi. Bezpečné, ale nie viac ako CHOP.

Čo by sa malo uprednostniť medzi PDO alebo MySQLi?

PDO aj MySQLi majú svoje výhody:

  • Ako sme už videli, PDO funguje na 12 rôznych databázových systémoch, zatiaľ čo MySQL môže pracovať iba s databázou MySQL. Ak teda chceme prepnúť náš projekt do inej databázy, PDO to uľahčí. V MySQLi musíme prepísať celý kód.
  • PDO aj MySQLi sú objektovo orientované, ale MySQLi ponúka aj procedurálne API. Obe podporujú pripravené vyhlásenia. Pripravené príkazy sú dôležité pre bezpečnosť webových aplikácií, pretože chránia pred vstrekovaním SQL.

Požiadavka

Na vytvorenie tohto rozšírenia nie sú potrebné externé knižnice.

Proces inštalácie

Krok 1: Stiahnite si najnovší server XAMPP odtiaľto https://www.apachefriends.org/download.html pre rôzne platformy ako Windows, Linux a MacOS.

Phppdo

Poznámka: Tu budeme diskutovať o procese inštalácie iba pre operačný systém Windows.

Krok 2: Nainštalujte XAMPP Server do svojho systému podľa týchto krokov.

Phppdo

Krok 3: Vyberte komponenty, ktoré chcete nainštalovať, a kliknite na tlačidlo Ďalej.

Phppdo

Krok 4: Vytvorte nový priečinok s názvom xampp na mieste, kde chcete nainštalovať XAMPP.

Phppdo

Krok 5: Kliknite tu na Ďalej a posuňte sa vpred. Inštalácia servera XAMPP sa spustí odtiaľto.

Phppdo

Krok 6: XAMPP je úspešne nainštalovaný. Kliknite na tlačidlo Dokončiť.

Phppdo

Krok 7: Vyberte preferovaný jazyk.

Phppdo

Krok 8: Spustite server Apache a MySQL odtiaľto (podľa danej snímky obrazovky).

Phppdo

Krok 9: Teraz otvorte php.ini z C:/xampp/php/php.ini (kde ste nainštalovali XAMPP) a odkomentujte rozšírenie 'php_pdo_mysql.dll' a 'php_pdo.dll' (ak pracujete s databázou MySQL), príp 'php_pdo_oci.dll' (ak pracujete s databázou Oracle). Teraz začnite pracovať s databázou. Vo vyššej verzii PHP 5.1 je to už nastavené.

Práca s CHOP

Najprv musíme vytvoriť databázu, takže odtiaľto vytvorte databázu podľa názvu myDB.

Phppdo

Pripojenie k databáze

Na interakciu s databázou je vždy potrebné pripojenie k databáze. Potrebujeme teda poznať identifikátor na prístup k databáze, t.j. umiestnenie databázy, názov databázy, používateľské meno a heslo.

Teraz vytvorte program na pripojenie k databáze pomocou PDO v akomkoľvek textovom editore, ako je notepad alebo notepad++ a uložte ho pod názvom coonection.php. Spustite ho na serveri XAMPP pomocou localhost/80.

Príklad

 getMessage(); } ?> 

Výkon

Spustite ho na serveri pomocou nasledujúcej adresy URL localhost/Xampp/pdoexample/connection.php/ alebo kde máte uložený program.

Phppdo

Manipulácia s chybou pripojenia

Ak dôjde k nejakej chybe pripojenia, vyvolá sa objekt PDOException. Výnimku môžeme zachytiť, ak chceme spracovať chybový stav, alebo to môžeme tiež ponechať na globálnu obsluhu výnimiek, ktorú môže nastaviť set_exception_handler() funkciu.

Príklad

V tomto príklade je dbUser(user-id) nesprávne, takže vyvolá výnimku, ako môžeme vidieť vo výstupe.

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

Zatvorenie pripojenia k databáze

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

Výkon

Phppdo