PHP ist eine universelle Open-Source-Skriptsprache, die häufig zum Erstellen dynamischer und interaktiver Webseiten verwendet wird. PHP kann auf eine Vielzahl relationaler Datenbankverwaltungssysteme zugreifen, z MYSQL, SQLite , Und PostgreSQL . Der PHP 5.1 Die Version bot eine neue Datenbankverbindungs-Abstraktionsbibliothek PHP-Datenobjekte (PDO).
Was ist PDO?
PDO bezieht sich auf PHP-Datenobjekt , eine PHP-Erweiterung, die eine einfache und konsistente Schnittstelle für den Zugriff auf eine Datenbank in PHP definiert. Es handelt sich um eine Reihe von PHP-Erweiterungen, die eine PDO-Kernklasse und einen datenbankspezifischen Treiber bereitstellen. Jeder Datenbanktreiber kann datenbankspezifische Funktionen als reguläre Erweiterungsfunktion verfügbar machen, die die PDO-Schnittstelle implementiert.
Hinweis: Mit der PDO-Erweiterung selbst können wir keine Datenbankfunktionen ausführen. Um auf einen Datenbankserver zuzugreifen, müssen wir einen datenbankspezifischen PDO-Treiber verwenden.
PDO konzentriert sich hauptsächlich auf die Abstraktion des Datenzugriffs und nicht auf die Abstraktion der Datenbank. Es bietet Abstraktionsschicht für den Datenzugriff , was bedeutet, dass wir unabhängig davon, welche Datenbank wir verwenden, dieselben Funktionen verwenden müssen, die von dieser Datenbank bereitgestellt werden, um Abfragen durchzuführen und Daten abzurufen. PDO bietet keine Datenabstraktion, da es weder SQL neu schreibt noch fehlende Funktionen emuliert.
Vorteil von PDO
PDO bietet verschiedene Möglichkeiten, mit Objekten zu arbeiten und ruft vorbereitete Anweisungen ab, die die Arbeit erheblich erleichtern. Dabei handelt es sich um ein Datenbankzugriffstool in PHP, mit dem wir einen einheitlichen Zugriff über mehrere Datenbanken hinweg ermöglichen.
PDO ermöglicht einen vergleichsweise nahtlosen Wechsel zwischen verschiedenen Datenbanken und Plattformen, was einfach durch Ändern des Verbindungsstrings erfolgen kann. Datenbankspezifische Syntaxen werden nicht unterstützt.
Es gibt einige Vorteile von PDO:
Die PDO-Erweiterung kann auf jede Datenbank zugreifen, die für PDO-Treiber geschrieben wurde. Es stehen mehrere PDO-Treiber zur Verfügung, die dafür verwendet werden FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, Oracle Call Interface, Firebird/Interbase 6 , Und PostgreSQL Datenbanken und vieles mehr.
Da die Treiber nicht in jedem System automatisch verfügbar sind, müssen wir unsere verfügbaren Treiber finden und bei Bedarf hinzufügen.
Für den Aufbau der Datenbankverbindung stehen verschiedene Syntaxen zur Verfügung. Diese Syntaxen hängen von bestimmten Datenbanken ab. Bei der Verwendung von PDO müssen Vorgänge in Try/Catch-Blöcke eingeschlossen werden und die Ausnahmetechnik nutzen.
Normalerweise muss nur eine einzige Verbindung erstellt werden, und diese Verbindungen werden geschlossen, indem die Datenbank so programmiert wird, dass sie auf Null gesetzt wird.
PDO ermöglicht die Verwendung von Ausnahmen zur Fehlerbehandlung. Um eine Ausnahme zu erzeugen, kann PDO in ein relevantes Fehlermodusattribut gezwungen werden.
Es gibt drei Fehlermodi, nämlich Still (Standard), Warnung , Und Ausnahme . Warnung und Ausnahme sind bei der DRY-Programmierung nützlicher.
PDO reduziert den häufig verwendeten Vorgang zum Einfügen und Aktualisieren der Datenbank auf einen zweistufigen Prozess, d. h.
Vorbereiten >> [Binden] >> Ausführen.
Durch diese Methode können wir die vorbereiteten Anweisungen von PDO voll ausnutzen, die vor böswilligen Angriffen durch SQL-Injection schützen.
Vorbereitete Anweisungen sind vorkompilierte SQL-Anweisungen, die durch Senden dieser Daten an den Server mehrmals ausgeführt werden können. Diese Daten, die innerhalb des Platzhalters verwendet werden, werden automatisch vor dem SQL-Injection-Angriff geschützt.
Vorteile der Verwendung von PDO
PDO ist der native Datenbanktreiber. Die Verwendung von PDO bietet einige Vorteile, die im Folgenden aufgeführt sind:
PDO-Klassen
Es gibt drei PDO-Klassen, die im Folgenden aufgeführt sind:
Java if else-Anweisung
Von PDO unterstützte Datenbanken
- MySQL
- PostgreSQL
- Orakel
- Feuervogel
- MS SQL Server
- Sybase
- Informix
- IBM
- FreeTDS
- SQLite
- Kubrid
- 4D
Vergleich zwischen PDO und MySQLi
Um mit PHP auf die Datenbank zuzugreifen, haben wir hauptsächlich zwei Möglichkeiten: MySQLi Und gU (PHP-Datenobjekt). MySQLi ist ein natives PHP-Programm, das eine schnellere Leistung bietet, wohingegen die meisten erfahrenen Entwickler die Arbeit mit PDO bevorzugen, da es eine Vielzahl von Datenbanktreibern unterstützt. Es gibt einige unten aufgeführte Unterschiede zwischen PDO und MySQLi, die auf ihren Funktionen basieren.
Merkmale | gU | MySQLi |
---|---|---|
DB-Unterstützung | 12 verschiedene Fahrer | Nur MySQL |
Verbindung | Einfach | Einfach |
API | OFFEN | OOP + Verfahren |
Leistung | Schnell | Schnell |
Benannter Parameter | Ja | NEIN |
Objektzuordnung | Ja | Ja |
Gespeicherte Prozedur | Ja | Ja |
Clientseitig vorbereitete Statements | Ja | NEIN |
Sicherheit | Sicherer als MySQLi. | Sicher, aber nicht mehr als gU. |
Was sollte zwischen PDO und MySQLi bevorzugt werden?
Sowohl PDO als auch MySQLi haben ihre eigenen Vorteile:
char zu string
- Wie wir bereits gesehen haben, funktioniert PDO auf 12 verschiedenen Datenbanksystemen, während MySQL nur mit MySQL-Datenbanken arbeiten kann. Wenn wir also unser Projekt auf eine andere Datenbank umstellen möchten, ist dies mit PDO ganz einfach. In MySQLi müssen wir den gesamten Code neu schreiben.
- PDO und MySQLi sind beide objektorientiert, MySQLi bietet jedoch auch eine prozedurale API. Beide unterstützen Prepared Statements. Vorbereitete Anweisungen sind wichtig für die Sicherheit von Webanwendungen, da sie vor SQL-Injection schützen.
Erfordernis
Zum Erstellen dieser Erweiterung sind keine externen Bibliotheken erforderlich.
Installationsprozess
Schritt 1: Laden Sie hier den neuesten XAMPP-Server herunter https://www.apachefriends.org/download.html für verschiedene Plattformen wie Windows, Linux und MacOS.
Hinweis: Hier besprechen wir nur den Installationsprozess für das Windows-Betriebssystem.
Schritt 2: Installieren Sie den XAMPP-Server auf Ihrem System, indem Sie diese Schritte befolgen.
Schritt 3: Wählen Sie die Komponenten aus, die Sie installieren möchten, und klicken Sie auf die Schaltfläche Weiter.
Schritt 4: Erstellen Sie den neuen Ordner mit dem Namen xampp an dem Ort, an dem Sie XAMPP installieren möchten.
Schritt 5: Klicken Sie hier auf Weiter und fahren Sie fort. Von hier aus beginnt die Installation des XAMPP-Servers.
Schritt 6: XAMPP wurde erfolgreich installiert. Klicken Sie auf die Schaltfläche „Fertig stellen“.
Schritt 7: Wählen Sie die bevorzugte Sprache aus.
Schritt 8: Führen Sie von hier aus den Apache-Server und MySQL aus (gemäß dem angegebenen Screenshot).
Schritt 9: Öffnen Sie nun php.ini von C:/xampp/php/php.ini (wo Sie Ihr XAMPP installiert haben) und kommentieren Sie die Erweiterung aus 'php_pdo_mysql.dll' Und 'php_pdo.dll' (wenn Sie mit einer MySQL-Datenbank arbeiten), oder 'php_pdo_oci.dll' (wenn Sie mit einer Oracle-Datenbank arbeiten). Beginnen Sie nun mit der Arbeit mit der Datenbank. In der oberen Version von PHP 5.1 ist es bereits festgelegt.
Arbeiten mit PDO
Zuerst müssen wir eine Datenbank erstellen, also erstellen Sie hier eine Datenbank mit dem Namen myDB.
Datenbankverbindung
Für die Interaktion mit der Datenbank ist immer eine Datenbankverbindung erforderlich. Wir müssen also die Kennung für den Zugriff auf die Datenbank kennen, d. h. den Speicherort der Datenbank, den Datenbanknamen, den Benutzernamen und das Passwort.
Erstellen Sie nun das Datenbankverbindungsprogramm mit PDO in einem beliebigen Texteditor wie Notepad oder Notepad++ und speichern Sie es unter dem Namen coonection.php. Führen Sie es auf dem XAMPP-Server mit localhost/80 aus.
Java enthält Teilzeichenfolge
Beispiel
getMessage(); } ?>
Ausgabe
Führen Sie es mit der folgenden URL auf dem Server aus localhost/Xampp/pdoexample/connection.php/ oder wo Sie Ihr Programm gespeichert haben.
Verbindungsfehler behandeln
Bei einem Verbindungsfehler wird ein PDOException-Objekt ausgelöst. Wir können die Ausnahme abfangen, wenn wir die Fehlerbedingung behandeln möchten, oder wir können sie auch einem globalen Ausnahmehandler überlassen, der von eingerichtet werden kann set_Exception_handler() Funktion.
Beispiel
In diesem Beispiel ist dbUser(user-id) falsch, daher wird eine Ausnahme ausgelöst, wie wir in der Ausgabe sehen können.
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); Echo 'Successfully connected with myDB database'; } catch(Exception $e){ Echo 'Connection failed' . $e->getMessage(); } ?>
Schließen der Datenbankverbindung
getMessage(); } // this command close the connection. $dbConn = null; ?>
Ausgabe