Einleitung: Warum ein PHP-Entwickler mit verschiedenen DBs arbeiten können sollte
Moderne Webentwicklung kommt selten ohne die Interaktion mit Datenbanken aus. PHP, als eine der beliebtesten serverseitigen Sprachen, bietet flexible Werkzeuge für die Arbeit sowohl mit relationalen (SQL) als auch mit dokumentenorientierten (NoSQL) Systemen. In diesem Artikel werden wir die Verbindung und die Durchführung grundlegender Operationen mit zwei populären Datenbanken im Detail behandeln: PostgreSQL und MongoDB. Sie erfahren, wie Sie eine Verbindung einrichten, Abfragen ausführen und Ergebnisse verarbeiten, unter Verwendung moderner PHP-Praktiken.
1. Arbeiten mit PostgreSQL in PHP über PDO
PostgreSQL ist ein leistungsstarkes objektrelationales DBMS. Für die Arbeit damit in PHP wird die Erweiterung PDO (PHP Data Objects) empfohlen, die eine einheitliche Schnittstelle für verschiedene Datenbanken bietet und die Sicherheit durch vorbereitete Abfragen erhöht.
1.1 Verbindung zur Datenbank herstellen
Stellen Sie zunächst sicher, dass die Erweiterung pdo_pgsql in Ihrer php.ini aktiviert ist. Beispiel für eine Verbindung:
<?php$host = 'localhost';$dbname = 'my_database';$user = 'my_user';$password = 'my_password';
try { $dsn = "pgsql:host=$host;dbname=$dbname"; $pdo = new PDO($dsn, $user, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Verbindung erfolgreich hergestellt";} catch (PDOException $e) { die("Verbindungsfehler: " . $e->getMessage());}?>1.2 Ausführen von Abfragen (CRUD)
Betrachten wir die grundlegenden Operationen am Beispiel der Tabelle users.
Datensatz erstellen (INSERT):
<?php$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";$stmt = $pdo->prepare($sql);$stmt->execute([':name' => 'Ivan Ivanov', ':email' => 'ivan@example.com']);echo "Benutzer hinzugefügt, ID: " . $pdo->lastInsertId();?>Daten lesen (SELECT):
<?php$stmt = $pdo->query("SELECT id, name, email FROM users");while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo "ID: {$row['id']}, Name: {$row['name']}, Email: {$row['email']}<br>";}?>Aktualisieren (UPDATE) und Löschen (DELETE):
<?php// Aktualisieren$sql = "UPDATE users SET email = :email WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':email' => 'newemail@example.com', ':id' => 1]);
// Löschen$sql = "DELETE FROM users WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':id' => 1]);?>2. Arbeiten mit MongoDB in PHP
MongoDB ist eine führende NoSQL-Datenbank, die Daten in JSON-ähnlichen Dokumenten speichert. Für die Arbeit damit in PHP wird die offizielle Erweiterung mongodb und die Bibliothek MongoDB PHP Library (installierbar über Composer) verwendet.
2.1 Installation und Verbindung
Installieren Sie die Bibliothek über Composer:
composer require mongodb/mongodbBeispiel für eine Verbindung zu einem lokalen MongoDB-Server:
<?phprequire 'vendor/autoload.php';
$client = new MongoDB\\Client("mongodb://localhost:27017");$database = $client->selectDatabase('my_database');$collection = $database->selectCollection('users');echo "Verbindung zu MongoDB hergestellt";?>2.2 CRUD-Operationen mit Dokumenten
Dokument einfügen (INSERT):
<?php$insertResult = $collection->insertOne([ 'name' => 'Maria Petrova', 'email' => 'maria@example.com', 'age' => 28]);echo "Dokument hinzugefügt mit ID: " . $insertResult->getInsertedId();?>Dokumente suchen (SELECT):
<?php$cursor = $collection->find(['age' => ['$gte' => 25]]);