Dieser Abschnitt bietet eine Einführung in die Möglichkeiten, die bei der Entwicklung einer PHP-Anwendung, die mit einer MySQL-Datenbank interagieren muss, zur Verfügung stehen.
Was ist eine API?
Eine API (Application Programming Interface, Schnittstelle für die Anwendungsprogrammierung) definiert die Klassen, Methoden, Funktionen und Variablen, die eine Anwendung aufrufen muss, um die gewünschte Aufgabe zu erfüllen. Im Falle von PHP-Anwendungen, die mit Datenbanken kommunizieren müssen, werden die erforderlichen APIs in der Regel über PHP-Erweiterungen bereitgestellt.
APIs können entweder prozedural oder objektorientiert sein. Bei einer prozeduralen API werden Funktionen aufgerufen, um Aufgaben auszuführen, während bei einer objektorientierten API Klassen instanziiert und dann die Methoden der resultierenden Objekte aufgerufen werden. Von den beiden ist die letztere in der Regel die bevorzugte Schnittstelle, da sie moderner ist und zu besser strukturiertem Code führt.
Wenn eine PHP-Anwendung geschrieben wird, die sich mit dem MySQL-Server verbinden muss, stehen mehrere APIs zur Verfügung. In diesem Dokument wird beschrieben, welche Möglichkeiten es gibt und welche die beste Wahl für die jeweilige Anwendung ist.
Was ist ein Konnektor?
Der Begriff Konnektor, wie er in der MySQL-Dokumentation verwendet wird, bezieht sich auf Software, die es ermöglicht, von einer Anwendung aus eine Verbindung zum MySQL-Datenbankserver herzustellen. MySQL bietet Konnektoren für verschiedene Sprachen, darunter PHP.
Wenn eine PHP-Anwendung mit einem Datenbankserver kommunizieren soll, muss PHP-Code geschrieben werden, der die Verbindung zum Datenbankserver, die Abfrage der Datenbank und andere datenbankbezogene Funktionen ermöglicht. Es wird eine Software benötigt, die die API für die Kommunikation zwischen der Anwendung und dem Datenbankserver zur Verfügung stellt und gegebenenfalls andere zwischengeschaltete Bibliotheken verwendet. Diese Software wird allgemein als Konnektor bezeichnet, weil sie es der Anwendung ermöglicht, sich mit einem Datenbankserver zu verbinden.
Was ist ein Treiber?
Ein Treiber ist ein Stück Software, das für die Kommunikation mit einem bestimmten Typ von Datenbankserver entwickelt wurde. Der Treiber kann auch eine Bibliothek aufrufen, z. B. die MySQL Client Library oder den MySQL Native Driver. Diese Bibliotheken implementieren das Low-Level-Protokoll, das für die Kommunikation mit dem MySQL-Datenbankserver verwendet wird.
So verwendet beispielsweise die Datenbank-Abstraktionsschicht PHP Data Objects (PDO) einen von mehreren datenbankspezifischen Treibern. Einer der verfügbaren Treiber ist der PDO-MYSQL-Treiber, der eine Schnittstelle zum MySQL-Server bietet.
Manchmal werden die Begriffe Konnektor und Treiber synonym verwendet, was verwirrend sein kann. In der MySQL-Dokumentation ist der Begriff "Treiber" für Software reserviert, die den datenbankspezifischen Teil eines Konnektor-Pakets bereitstellt.
Was ist eine Erweiterung?
In der PHP-Dokumentation wird häufig der Begriff
Erweiterung verwendet. Der PHP-Code besteht aus einem
Kern und optionalen Erweiterungen der Kernfunktionalität. Die
PHP-Erweiterung für MySQL, mysqli
, wird mit Hilfe des
PHP-Frameworks für Erweiterungen implementiert.
Damit die Funktionen einer Erweiterung von PHP-Programmierern programmtechnisch genutzt werden können, stellt diese in der Regel eine API zur Verfügung. Allerdings stellen nicht alle Erweiterungen, die das Framework für PHP-Erweiterungen verwenden, dem PHP-Programmierer eine API zur Verfügung.
Der PDO-Treiber für MySQL beispielsweise stellt dem PHP-Programmierer keine API zur Verfügung, sondern eine Schnittstelle zur darüber liegenden PDO-Schicht.
Die Begriffe API und Erweiterung sollten nicht als gleichbedeutend angesehen werden, da eine Erweiterung dem Programmierer nicht unbedingt eine API zur Verfügung stellt.