Einführung in die Arbeit mit Datenbanken in PHP
Moderne Webentwicklung ist ohne effizientes Datenmanagement undenkbar. PHP, als eine der beliebtesten serverseitigen Sprachen, bietet Entwicklern leistungsstarke Werkzeuge für die Interaktion mit verschiedenen Datenbankmanagementsystemen (DBMS). In diesem Artikel betrachten wir zwei grundlegend unterschiedliche, aber gleichermaßen gefragte DBMS: das relationale PostgreSQL und das dokumentenorientierte MongoDB.
Für Anfänger kann die Wahl zwischen SQL und NoSQL kompliziert erscheinen. Wir werden die wichtigsten Unterschiede erläutern, lernen, wie man von PHP aus eine Verbindung zu beiden Datenbanken herstellt und grundlegende CRUD-Operationen (Create, Read, Update, Delete) durchführt. Am Ende dieses Artikels können Sie selbstständig das passende DBMS für Ihr Projekt auswählen und funktionierenden Code für die Interaktion damit schreiben.
1. PostgreSQL: Arbeiten mit relationalen Daten über PDO
PostgreSQL ist ein leistungsstarkes, objektrelationales Open-Source-DBMS. Es unterstützt komplexe Abfragen, Transaktionen und erweiterte Datentypen. Für die Arbeit mit PostgreSQL in PHP wird die Erweiterung PDO (PHP Data Objects) empfohlen, die eine einheitliche Schnittstelle für die Arbeit mit verschiedenen Datenbanken bietet.
Verbindung zu PostgreSQL über PDO herstellen
Der erste Schritt ist die Installation des Treibers pdo_pgsql. Stellen Sie sicher, dass er in Ihrer php.ini aktiviert ist. Danach können Sie eine Verbindung herstellen:
<?php$host = 'localhost';$dbname = 'my_database';$user = 'my_user';$password = 'my_password';
try { $pdo = new PDO("pgsql:host=$host;dbname=$dbname", $user, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Verbindung zu PostgreSQL erfolgreich hergestellt!";} catch (PDOException $e) { die("Verbindungsfehler: " . $e->getMessage());}?>CRUD-Operationen in PostgreSQL
Betrachten wir die Arbeit mit der Tabelle users, die die Felder id, name und email enthält. Alle Abfragen werden über vorbereitete Anweisungen (prepared statements) ausgeführt, um sich vor SQL-Injection zu schützen.
Datensatz erstellen (Create):
<?php$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";$stmt = $pdo->prepare($sql);$stmt->execute([':name' => 'Ivan Petrov', ':email' => 'ivan@example.com']);echo "Benutzer hinzugefügt. ID: " . $pdo->lastInsertId();?>Daten lesen (Read):
<?php$sql = "SELECT * FROM users WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':id' => 1]);$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user) { echo "Name: " . $user['name'] . ", Email: " . $user['email'];} else { echo "Benutzer nicht gefunden.";}?>Aktualisieren (Update) und Löschen (Delete):
<?php// Aktualisieren$sql = "UPDATE users SET email = :email WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':email' => 'new_email@example.com', ':id' => 1]);echo "Aktualisierte Zeilen: " . $stmt->rowCount();
// Löschen$sql = "DELETE FROM users WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':id' => 1]);echo "Gelöschte Zeilen: " . $stmt->rowCount();?>2. MongoDB: Arbeiten mit Dokumenten über die MongoDB PHP Library
MongoDB ist eine NoSQL-Datenbank, die Daten in Form von flexiblen JSON-ähnlichen Dokumenten speichert. Für die Arbeit damit in PHP wird die offizielle Bibliothek mongodb/mongodb verwendet, die über Composer installiert wird.
Installation und Verbindung zu MongoDB
Installieren Sie zuerst die Bibliothek über Composer:
composer require mongodb/mongodbStellen Sie danach eine Verbindung zum MongoDB-Server her (standardmäßig läuft er auf Port 27017):