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:
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.
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.
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.
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:
Triedy CHOP
Existujú tri triedy CHOP, ktoré sú uvedené nižšie:
Databázy podporované PDO
- MySQL
- PostgreSQL
- Oracle
- Firebird
- MS SQL Server
- Sybase
- Informix
- IBM
- FreeTDS
- SQLite
- Cubrid
- 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.
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.
Krok 3: Vyberte komponenty, ktoré chcete nainštalovať, a kliknite na tlačidlo Ďalej.
Krok 4: Vytvorte nový priečinok s názvom xampp na mieste, kde chcete nainštalovať XAMPP.
Krok 5: Kliknite tu na Ďalej a posuňte sa vpred. Inštalácia servera XAMPP sa spustí odtiaľto.
Krok 6: XAMPP je úspešne nainštalovaný. Kliknite na tlačidlo Dokončiť.
Krok 7: Vyberte preferovaný jazyk.
Krok 8: Spustite server Apache a MySQL odtiaľto (podľa danej snímky obrazovky).
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.
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.
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(); } ?>
Zatvorenie pripojenia k databáze
getMessage(); } // this command close the connection. $dbConn = null; ?>
Výkon