logo

Wprowadzenie do PHP PDO

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:

    Obsługa baz danych
    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.Łączenie z bazą danych
    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.Obsługa błędów
    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.
      Cichy- Jest to domyślny tryb błędu.Ostrzeżenie- Przydaje się do debugowania.Wyjątek- Ten tryb umożliwia płynną obsługę błędów przy jednoczesnym ukrywaniu danych, które osoba może wykorzystać do wykorzystania systemu.
    Wstaw i zaktualizuj
    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:

    Użyteczność- Zawiera wiele funkcji pomocniczych do obsługi automatycznych, rutynowych operacji.Możliwość ponownego użycia- Oferuje ujednolicony interfejs API umożliwiający dostęp do wielu baz danych.Bezpieczeństwo- Wykorzystuje przygotowaną instrukcję, która chroni przed wstrzyknięciem SQL. Przygotowana instrukcja to wstępnie skompilowana instrukcja SQL, która oddziela instrukcję instrukcji SQL od danych.

Zajęcia PDO

Istnieją trzy klasy PDO, które podano poniżej:

    ChNP- Reprezentuje połączenie pomiędzy PHP i bazą danych.Oświadczenie PDO- Reprezentuje przygotowaną instrukcję i po wykonaniu instrukcji ustawia powiązany wynik.Wyjątek PDO- Reprezentuje błędy zgłoszone przez PDO.

Bazy danych obsługiwane przez PDO

  1. MySQL'a
  2. PostgreSQL
  3. Wyrocznia
  4. ognisty Ptak
  5. Serwer MS SQL
  6. Sybaza
  7. Informix
  8. IBM-a
  9. BezpłatneTDS
  10. SQLite
  11. Cubryd
  12. 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.

Phppdo

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.

Phppdo

Krok 3: Wybierz komponenty, które chcesz zainstalować i kliknij przycisk Dalej.

Phppdo

Krok 4: Utwórz nowy folder o nazwie xampp w lokalizacji, w której chcesz zainstalować XAMPP.

Phppdo

Krok 5: Kliknij tutaj Dalej i przejdź dalej. Od tego momentu rozpocznie się instalacja serwera XAMPP.

Phppdo

Krok 6: XAMPP został pomyślnie zainstalowany. Kliknij przycisk Zakończ.

Phppdo

Krok 7: Wybierz preferowany język.

Phppdo

Krok 8: Uruchom stąd serwer Apache i MySQL (zgodnie z podanym zrzutem ekranu).

Phppdo

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.

Phppdo

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.

Phppdo

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(); } ?> 
Phppdo

Zamykanie połączenia z bazą danych

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

Wyjście

Phppdo