PHP je open-source univerzální skriptovací jazyk, který je široce používán pro vytváření dynamických a interaktivních webových stránek. PHP může přistupovat k široké škále systémů pro správu relačních databází, jako jsou např MYSQL, SQLite , a PostgreSQL . The PHP 5.1 verze nabídla novou knihovnu abstrakce připojení k databázi, která je Datové objekty PHP (CHOP).
Co je PDO?
PDO odkazuje na Datový objekt PHP , což je rozšíření PHP, které definuje odlehčené a konzistentní rozhraní pro přístup k databázi v PHP. Jedná se o sadu rozšíření PHP, která poskytují základní třídu PDO a ovladač specifický pro databázi. Každý databázový ovladač může vystavit funkce specifické pro databázi jako běžnou rozšiřující funkci, která implementuje rozhraní PDO.
Poznámka: Nemůžeme provádět žádný typ databázové funkce pomocí samotného rozšíření PDO. Pro přístup k databázovému serveru musíme použít ovladač PDO specifický pro databázi.
PDO se zaměřuje především na abstrakci přístupu k datům spíše než na abstrakci databází. Poskytuje vrstva abstrakce přístupu k datům , což znamená, že bez ohledu na databázi, kterou používáme, musíme k zadávání dotazů a načítání dat používat stejné funkce, které tato databáze poskytuje. PDO neposkytuje abstrakci dat, protože nepřepisuje SQL ani neemuluje chybějící funkce.
Výhoda CHOP
PDO poskytuje různé způsoby práce s objekty a načítá připravené příkazy, které práci značně usnadňují. Jedná se o nástroj pro přístup k databázi v PHP, jehož prostřednictvím umožňujeme jednotný přístup napříč několika databázemi.
PDO umožňuje poměrně bezproblémové přepínání mezi různými databázemi a platformami, což lze snadno provést změnou připojovacího řetězce. Nepodporuje syntaxe specifické pro databázi.
Existují některé výhody PDO:
Rozšíření PDO může přistupovat k jakékoli databázi, která je napsána pro ovladač PDO. K dispozici je několik ovladačů PDO, které se používají FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, Oracle Call Interface, Firebird/Interbase 6 , a PostgreSQL databáze, mezi mnoha dalšími.
Ovladače nejsou k dispozici v každém systému automaticky, takže musíme najít dostupné ovladače a přidat je, když je potřebujeme.
K navázání připojení k databázi jsou k dispozici různé syntaxe. Tyto syntaxe závisí na konkrétních databázích. Při používání PDO musí být operace zabaleny do bloků try/catch a musí využívat techniku výjimek.
Obvykle je potřeba vytvořit pouze jedno připojení a tato připojení jsou uzavřena naprogramováním databáze na hodnotu null.
PDO umožňuje používat výjimky pro zpracování chyb. Pro vytvoření výjimky může být PDO vynucen do příslušného atributu chybového režimu.
Existují tři chybové režimy, tj. Tichý (výchozí), Varování , a Výjimka . Varování a Výjimka jsou užitečnější při programování DRY.
PDO redukuje běžně používané operace vkládání a aktualizace databáze na dvoukrokový proces, tzn.
Připravit >> [Svázat] >> Provést.
Prostřednictvím této metody můžeme plně využít připravené příkazy PDO, které chrání před škodlivými útoky prostřednictvím SQL injection.
Připravené příkazy jsou předkompilované příkazy SQL, které lze provést vícekrát odesláním těchto dat na server. Tato data, která se používají v rámci zástupného symbolu, jsou automaticky chráněna před útokem SQL injection.
Výhody používání CHOP
PDO je nativní databázový ovladač. Níže jsou uvedeny některé výhody používání PDO:
Třídy CHOP
Existují tři třídy CHOP, které jsou uvedeny níže:
Databáze podporované PDO
- MySQL
- PostgreSQL
- Věštec
- Fénix
- MS SQL Server
- Sybase
- Informix
- IBM
- FreeTDS
- SQLite
- Cubrid
- 4D
Srovnání mezi PDO a MySQLi
Pro přístup k databázi pomocí PHP máme především dvě možnosti - MySQLi a CHOP (Datový objekt PHP). MySQLi je nativní pro PHP, který poskytuje rychlejší výkon, zatímco většina zkušených vývojářů dává přednost práci s PDO, protože podporuje širokou škálu databázových ovladačů. Mezi PDO a MySQLi jsou některé rozdíly uvedené níže na základě jejich vlastností.
Funkce | CHOP | MySQLi |
---|---|---|
Podpora DB | 12 různých ovladačů | Pouze MySQL |
Spojení | Snadný | Snadný |
API | OTEVŘENO | OOP + Postup |
Výkon | Rychle | Rychle |
Pojmenovaný parametr | Ano | Ne |
Mapování objektů | Ano | Ano |
Uložené procedury | Ano | Ano |
Připravené výpisy na straně klienta | Ano | Ne |
Bezpečnostní | Bezpečnější než MySQLi. | Bezpečné, ale ne více než CHOP. |
Co by mělo být preferováno mezi PDO nebo MySQLi?
PDO i MySQLi mají své výhody:
- Jak jsme viděli dříve, PDO funguje na 12 různých databázových systémech, zatímco MySQL může pracovat pouze s databází MySQL. Pokud tedy chceme přepnout náš projekt do jiné databáze, PDO to usnadní. V MySQLi musíme přepsat celý kód.
- PDO i MySQLi jsou objektově orientované, ale MySQLi nabízí také procedurální API. Oba podporují připravená prohlášení. Připravené příkazy jsou důležité pro zabezpečení webových aplikací, protože chrání před SQL injection.
Požadavek
K sestavení tohoto rozšíření nejsou potřeba externí knihovny.
Proces instalace
Krok 1: Stáhněte si nejnovější server XAMPP odtud https://www.apachefriends.org/download.html pro různé platformy, jako jsou Windows, Linux a MacOS.
Poznámka: Zde probereme proces instalace pouze pro OS Windows.
Krok 2: Nainstalujte XAMPP Server na váš systém podle následujících kroků.
Krok 3: Vyberte součásti, které chcete nainstalovat, a klikněte na tlačítko Další.
Krok 4: Vytvořte novou složku s názvem xampp v umístění, kam chcete nainstalovat XAMPP.
Krok 5: Zde klikněte na Další a pokračujte vpřed. Instalace serveru XAMPP bude zahájena zde.
Krok 6: XAMPP je úspěšně nainstalován. Klikněte na tlačítko Dokončit.
Krok 7: Vyberte preferovaný jazyk.
Krok 8: Spusťte server Apache a MySQL odtud (podle daného snímku obrazovky).
Krok 9: Nyní otevřete php.ini z C:/xampp/php/php.ini (kde jste nainstalovali XAMPP) a odkomentujte rozšíření 'php_pdo_mysql.dll' a 'php_pdo.dll' (pokud pracujete s databází MySQL), popř 'php_pdo_oci.dll' (pokud pracujete s databází Oracle). Nyní začněte pracovat s databází. Ve vyšší verzi PHP 5.1 je již nastaven.
Práce s PDO
Nejprve musíme vytvořit databázi, takže odtud vytvořte databázi jménem myDB.
Připojení k databázi
Pro interakci s databází je vždy vyžadováno připojení k databázi. Potřebujeme tedy znát identifikátor pro přístup k databázi, tedy umístění databáze, název databáze, uživatelské jméno a heslo.
Nyní vytvořte program pro připojení k databázi pomocí PDO v libovolném textovém editoru, jako je notepad nebo notepad++, a uložte jej pod názvem coonection.php. Spusťte jej na serveru XAMPP pomocí localhost/80.
mapování na stroji
Příklad
getMessage(); } ?>
Výstup
Spusťte jej na serveru pomocí následující adresy URL localhost/Xampp/pdoexample/connection.php/ nebo kam jste uložili svůj program.
Manipulace s chybou připojení
Pokud dojde k nějaké chybě připojení, bude vyvolán objekt PDOException. Můžeme zachytit výjimku, pokud chceme zpracovat chybovou podmínku, nebo ji můžeme také ponechat na globálním obsluze výjimek, kterou lze nastavit pomocí set_exception_handler() funkce.
Příklad
V tomto příkladu je dbUser(user-id) chybný, takže vyvolá výjimku, jak můžeme vidět na výstupu.
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); Echo 'Successfully connected with myDB database'; } catch(Exception $e){ Echo 'Connection failed' . $e->getMessage(); } ?>
Ukončení připojení k databázi
getMessage(); } // this command close the connection. $dbConn = null; ?>
Výstup