PHP to język skryptowy ogólnego przeznaczenia typu open source, powszechnie używany do tworzenia dynamicznych i interaktywnych stron internetowych. PHP może uzyskać dostęp do szerokiej gamy systemów zarządzania relacyjnymi bazami danych, takich jak MYSQL, SQLite , I PostgreSQL . The PHP 5.1 wersja oferowała nową bibliotekę abstrakcji połączeń z bazą danych, tj Obiekty danych PHP (PDO).
Co to jest PDO?
PDO odnosi się do Obiekt danych PHP , które jest rozszerzeniem PHP definiującym lekki i spójny interfejs dostępu do bazy danych w PHP. Jest to zestaw rozszerzeń PHP, które zapewniają podstawową klasę PDO i sterownik specyficzny dla bazy danych. Każdy sterownik bazy danych może udostępniać funkcje specyficzne dla bazy danych w postaci zwykłej funkcji rozszerzenia, która implementuje interfejs PDO.
Uwaga: Nie możemy wykonywać żadnych funkcji bazodanowych, korzystając z samego rozszerzenia PDO. Aby uzyskać dostęp do serwera bazy danych, musimy użyć sterownika PDO specyficznego dla bazy danych.
PDO koncentruje się głównie na abstrakcji dostępu do danych, a nie na abstrakcji bazy danych. To zapewnia warstwa abstrakcji dostępu do danych , co oznacza, że niezależnie od tego, z której bazy danych korzystamy, do wysyłania zapytań i pobierania danych musimy używać tych samych funkcji, które zapewnia ta baza danych. PDO nie zapewnia abstrakcji danych, ponieważ nie przepisuje kodu SQL ani nie emuluje brakujących funkcji.
Zaleta PDO
PDO udostępnia różne sposoby pracy z obiektami i pobiera przygotowane zestawienia, które znacznie ułatwiają pracę. Jest to narzędzie dostępu do baz danych w języku PHP, dzięki któremu umożliwiamy jednolity dostęp do kilku baz danych.
PDO umożliwia stosunkowo płynne przełączanie pomiędzy różnymi bazami danych i platformami, co można łatwo zrobić poprzez zmianę parametrów połączenia. Nie obsługuje składni specyficznych dla bazy danych.
PDO ma następujące zalety:
Rozszerzenie PDO może uzyskać dostęp do dowolnej bazy danych napisanej dla sterownika PDO. Dostępnych jest kilka sterowników PDO, które są używane do FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, interfejs wywołań Oracle, Firebird/Interbase 6 , I PostgreSQL bazy danych i wiele innych.
Sterowniki nie są automatycznie dostępne w każdym systemie, dlatego musimy znaleźć dostępne sterowniki i dodać je, gdy ich potrzebujemy.
Dostępne są różne składnie umożliwiające nawiązanie połączenia z bazą danych. Te składnie zależą od konkretnych baz danych. Podczas korzystania z PDO operacje muszą być opakowane w bloki try/catch i wykorzystywać technikę wyjątków.
Zwykle wystarczy utworzyć tylko jedno połączenie, które jest zamykane poprzez zaprogramowanie bazy danych tak, aby była ustawiona na wartość null.
PDO pozwala na stosowanie wyjątków do obsługi błędów. Aby wygenerować wyjątek, PDO można wymusić na odpowiednim atrybucie trybu błędu.
Istnieją trzy tryby błędów, tj. Cichy (domyślny), Ostrzeżenie , I Wyjątek . Ostrzeżenie i wyjątek są bardziej przydatne w programowaniu DRY.
PDO redukuje powszechnie stosowaną operację wstawiania i aktualizowania bazy danych do procesu dwuetapowego, tj.
Przygotuj >> [Bind] >> Wykonaj.
Dzięki tej metodzie możemy w pełni wykorzystać przygotowane przez PDO instrukcje, które chronią przed złośliwymi atakami poprzez wstrzykiwanie SQL.
Przygotowane instrukcje to wstępnie skompilowane instrukcje SQL, które można wykonać wielokrotnie, wysyłając te dane na serwer. Dane te, używane w symbolu zastępczym, są automatycznie chronione przed atakiem polegającym na wstrzykiwaniu kodu SQL.
Korzyści ze stosowania PDO
PDO jest natywnym sterownikiem bazy danych. Poniżej przedstawiono kilka korzyści wynikających ze stosowania PDO:
Zajęcia PDO
Istnieją trzy klasy PDO, które podano poniżej:
Bazy danych obsługiwane przez PDO
- MySQL'a
- PostgreSQL
- Wyrocznia
- ognisty Ptak
- Serwer MS SQL
- Sybaza
- Informix
- IBM-a
- BezpłatneTDS
- SQLite
- Cubryd
- 4D
Porównanie PDO i MySQLi
Aby uzyskać dostęp do bazy danych za pomocą PHP, mamy głównie dwie możliwości - MySQLi I ChNP (Obiekt danych PHP). MySQLi jest natywnym rozwiązaniem dla PHP, które zapewnia większą wydajność, podczas gdy większość doświadczonych programistów woli pracować z PDO, ponieważ obsługuje on szeroką gamę sterowników baz danych. Istnieją pewne różnice między PDO i MySQLi wymienione poniżej, w zależności od ich funkcji.
Cechy | ChNP | MySQLi |
---|---|---|
Wsparcie DB | 12 różnych kierowców | Tylko MySQL |
Połączenie | Łatwy | Łatwy |
API | OTWARTY | OOP + procedura |
Wydajność | Szybko | Szybko |
Nazwany parametr | Tak | NIE |
Mapowanie obiektów | Tak | Tak |
Procedura składowana | Tak | Tak |
Oświadczenia przygotowane po stronie klienta | Tak | NIE |
Bezpieczeństwo | Bezpieczniejsze niż MySQLi. | Bezpieczne, ale nie bardziej niż PDO. |
Co powinno być preferowane między PDO a MySQLi?
Zarówno PDO, jak i MySQLi mają swoje zalety:
program macierzowy w języku c
- Jak widzieliśmy wcześniej, PDO działa na 12 różnych systemach baz danych, podczas gdy MySQL może współpracować tylko z bazą danych MySQL. Jeśli więc chcemy przenieść nasz projekt do innej bazy danych, PDO ułatwia to. W MySQLi musimy przepisać cały kod.
- Zarówno PDO, jak i MySQLi są zorientowane obiektowo, ale MySQLi oferuje również proceduralne API. Obydwa obsługują przygotowane zestawienia. Przygotowane instrukcje są ważne dla bezpieczeństwa aplikacji internetowych, ponieważ chronią przed iniekcją SQL.
Wymóg
Do zbudowania tego rozszerzenia nie są potrzebne zewnętrzne biblioteki.
Proces instalacji
Krok 1: Pobierz stąd najnowszy serwer XAMPP https://www.apachefriends.org/download.html dla różnych platform, takich jak Windows, Linux i MacOS.
Uwaga: tutaj omówimy proces instalacji wyłącznie dla systemu operacyjnego Windows.
Krok 2: Zainstaluj serwer XAMPP w swoim systemie, wykonując poniższe kroki.
Krok 3: Wybierz komponenty, które chcesz zainstalować i kliknij przycisk Dalej.
Krok 4: Utwórz nowy folder o nazwie xampp w lokalizacji, w której chcesz zainstalować XAMPP.
Krok 5: Kliknij tutaj Dalej i przejdź dalej. Od tego momentu rozpocznie się instalacja serwera XAMPP.
Krok 6: XAMPP został pomyślnie zainstalowany. Kliknij przycisk Zakończ.
Krok 7: Wybierz preferowany język.
Krok 8: Uruchom stąd serwer Apache i MySQL (zgodnie z podanym zrzutem ekranu).
Krok 9: Teraz otwórz php.ini z C:/xampp/php/php.ini (gdzie zainstalowałeś XAMPP) i odkomentuj rozszerzenie „php_pdo_mysql.dll” I „php_pdo.dll” (jeśli pracujesz z bazą danych MySQL), lub „php_pdo_oci.dll” (jeśli pracujesz z bazą danych Oracle). Teraz rozpocznij pracę z bazą danych. W wyższej wersji PHP 5.1 jest to już ustawione.
Współpraca z PDO
Najpierw musimy utworzyć bazę danych, więc utwórz tutaj bazę danych o nazwie myDB.
Połączenie z bazą danych
Do interakcji z bazą danych zawsze wymagane jest połączenie z bazą danych. Musimy więc znać identyfikator dostępu do bazy danych, tj. lokalizację bazy danych, nazwę bazy danych, nazwę użytkownika i hasło.
Teraz utwórz program do połączenia z bazą danych za pomocą PDO w dowolnym edytorze tekstu, takim jak notatnik lub notatnik++ i zapisz go pod nazwą coonection.php. Uruchom go na serwerze XAMPP, używając localhost/80.
Przykład
getMessage(); } ?>
Wyjście
Uruchom go na serwerze, używając następującego adresu URL localhost/Xampp/pdoexample/connection.php/ lub gdzie zapisałeś swój program.
Obsługa błędu połączenia
W przypadku błędu połączenia zostanie zgłoszony obiekt PDOException. Możemy przechwycić wyjątek, jeśli chcemy obsłużyć warunek błędu, lub możemy też pozostawić to globalnej procedurze obsługi wyjątków, którą można skonfigurować za pomocą set_exception_handler() funkcjonować.
Przykład
W tym przykładzie dbUser(user-id) jest błędne, więc zgłosi wyjątek, jak widać na wyjściu.
ciąg znaków na liczbę całkowitą Java
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); Echo 'Successfully connected with myDB database'; } catch(Exception $e){ Echo 'Connection failed' . $e->getMessage(); } ?>
Zamykanie połączenia z bazą danych
getMessage(); } // this command close the connection. $dbConn = null; ?>
Wyjście