Suchen

Programmieren mit PHP, Teil 10 Datenbank-Zugriffe mit PHP realisieren

| Autor / Redakteur: Thomas Joos / Stephan Augsten

Ob MySQL, OracleDB oder Microsoft SQL: Bei vielen PHP-Programmen ist es notwendig, auf Datenbank-Server zuzugreifen. In diesem Beitrag wollen wir zeigen, wie sich dies schnell und sicher realisieren lässt.

Firma zum Thema

SQL-Datenbanken aus Microsoft Azure lassen sich durchaus mit PHP nutzen.
SQL-Datenbanken aus Microsoft Azure lassen sich durchaus mit PHP nutzen.
(Bild: Joos / Microsoft)

PHP und MySQL oder MariaDB werden in zahlreichen Programmen gemeinsam genutzt und kommen parallel zum Einsatz. Aber auch andere Datenbanken, wie zum Beispiel Oracle oder Microsoft SQL-Server lassen sich anbinden. In diesem Beitrag zeigen wir die Vorgehensweise.

Datenbanken mit phpMyAdmin und Adminer anbinden

Oft werden direkt in PHP-Programmen Datenbanken erstellt. ToolsTools, wie „phpMyAdmin“ erlauben einfachen und schnellen Zugriff auf MySQL. So lassen sich Datenbanken zum Beispiel direkt in „phpMyAdmin“ erstellen. Das unter der Apache-Lizenz stehende Open-Source-Tool „Adminer“ bietet ebenfalls eine grafische Oberfläche zur Anbindung von Datenbanken an PHP.

Als Alternative zu phpMyAdmin bietet Adminer mehr Funktionen. Der Entwickler von „Adminer“ listet einige Funktionen auf, die Adminer besser beherrscht als phpMyAdmin. Es lohnt sich aber, beide Tools zu testen, um das geeignetere für den jeweiligen Anwendungsfall auszumachen.

Ebenso sinnvoll ist es, wenn sich PHP-Entwickler vorab mit den Möglichkeiten von MySQL und MariaDB auseinandersetzen. Bei MariaDB handelt es sich um eine Abspaltung von MySQL durch einen der MySQL-Gründer. Vorteil von MariaDB ist deren Robustheit bei Stromausfällen oder Hardware-Problemen des Servers.

Microsoft SQL Server und Azure SQL mit PHP nutzen

Microsoft SQL Server wird in verschiedenen Versionen zusammen mit PHP genutzt. Damit PHP-Programme in Verbindung mit Microsoft SQL Server funktionieren, ist ein Treiber von Microsoft notwendig. Dieser steht kostenlos im Microsoft Download-Center oder auf GitHub zur Verfügung.

Mit dem Treiber wird sichergestellt, dass PHP-Programme auf den Microsoft SQL-Server zugreifen können. Die DLL-Dateien des Treibers müssen in der Datei „php.ini“ registriert werden. Dazu wird die Datei in das Erweiterungs-Verzeichnis von PHP kopiert. Die Registrierung sieht zum Beispiel unter Windows folgendermaßen aus:

extension=php_sqlsrv_72_ts.dll

Auch in Linux kann der Treiber eingebunden werden:

extension=php_sqlsrv_72_nts.so

In PHP lassen sich die Verbindungen zum Microsoft SQL-Server zum Beispiel folgendermaßen aufbauen:

<?php
   $serverName = "localhost";
   $connectionOptions = array(
      "Database" => "SampleDB",
      "Uid" => "sa",
      "PWD" => "your_password"
   );
   //Establishes the connection
   $conn = sqlsrv_connect($serverName, $connectionOptions);
   if($conn)
      echo "Connected!"
?>

Wie in PHP mit Datenbanken aus Microsoft SQL Server gearbeitet werden kann, ist auf der Seite „Create PHP apps using SQL Server on Windows“ zu lesen.

PHP Data Objects für den Zugriff auf Datenbanken nutzen

Wer mit Datenbanken in PHP arbeitet, sollte sich mit PHP Data Objects (PDO) auseinandersetzen. Dabei handelt es sich um eine Erweiterung für PHP, die einen objektorientierten Zugriff auf verschiedenste Datenbanken ermöglicht. Um das jeweilige Datenbanksystem zu nutzen, müssen nur die entsprechenden Treiber verfügbar sein. Diese gibt es beispielsweise für:

  • IBM DB2
  • Informix
  • MySQL
  • ODBC
  • PostgreSQL
  • SQLite
  • Microsoft SQL Server (ab Version 2005)

Die Vorgehensweise zur Programmierung mit PDO wird auf der Seite PHP.net umfassend beschrieben. Um Microsoft SQL Server mit PDO zu nutzen, muss PDO zunächst auf dem System verfügbar sein. Danach kann der PDO-SQL-Server-Treiber in der Datei „php.ini“ geladen werden:

extension=php_pdo.dll

Microsoft beschreibt die Vorgehensweise zur Anbindung von Microsoft SQL Server an PHP auf der Seite „Erste Schritte mit der Microsoft-Treiber für PHP für SQLServer“.

Datenbanken objektorientiert anbinden

Datenbanken lassen sich mit MySQLi auch objektorientiert verbinden. Dazu werden die Verbindungsdaten als Variable gespeichert und danach die Verbindung geöffnet, zum Beispiel mit:

<?php
$server = "<Servername>";
$user = "<Benutzername>";
$pass = "<Kennwort";

Danach wird die Verbindung aufgebaut:

$connect = new mysqli($server, $user, $pass);

PHP mit Microsoft Azure und Amazon Web Services

SQL-Datenbanken aus Microsoft Azure lassen sich durchaus mit PHP nutzen.
SQL-Datenbanken aus Microsoft Azure lassen sich durchaus mit PHP nutzen.
(Bild: Joos / Microsoft)

PHP kann auch unter Microsoft Azure genutzt werden, zum Beispiel mit Azure-SQL-Datenbanken. Damit dies funktioniert, muss man zunächst die Verbindungsdaten in Erfahrung bringen. Die Vorgehensweise dazu beschreibt Microsoft auf der Seite „Schnellstart: Abfragen einer Azure SQL-Datenbank mithilfe von PHP“.

Analog dazu bietet auch Amazon verschiedene Möglichkeiten an, PHP mit Datenbanken in der AWS-Cloud zu verbinden. Meistens wird hier mit PDO oder MySQLi gearbeitet. Für die Verwendung von PDO müssen die entsprechenden Treiber installiert werden. Die Vorgehensweise dazu beschreibt Amazon auf der Seite „Adding an Amazon RDS DB Instance to Your PHP Application Environment“.

Oracle-Datenbanken an PHP anbinden

Oracle-Datenbanken lassen sich ebenfalls mit PHP nutzen, hier wird die Verbindung mit „oci_connect“ aufgebaut:

oci_connect ( string $username , string $password [, string $connection_string [, string $character_set [, int$session_mode ]]] ) : resource

Beispiele für die Verbindung finden sich auf der Seite PHP.net.

(ID:45915927)