Einleitung: Warum PHP und Datenbanken eine starke Kombination sind
\n\nJede moderne Website oder Anwendung ist nicht nur eine Sammlung von Seiten, sondern ein dynamisches System, das Daten speichert und verarbeitet. PHP, als eine der beliebtesten Sprachen für die Webentwicklung, bietet leistungsstarke Werkzeuge für die Arbeit mit Datenbanken. In diesem Artikel behandeln wir zwei wichtige Datenbankmanagementsysteme (DBMS): das relationale PostgreSQL und das dokumentenorientierte MongoDB.
\n\nFür Anfänger mag die Wahl zwischen ihnen schwierig erscheinen, aber tatsächlich löst jedes seine eigenen Aufgaben. PostgreSQL ist ein zuverlässiger SQL-Standard für strukturierte Daten, während MongoDB ein flexibles NoSQL-System für schnelles Prototyping und die Arbeit mit JSON-ähnlichen Dokumenten ist. Wir zeigen, wie Sie sich von PHP aus mit beiden verbinden, grundlegende Operationen (CRUD) durchführen und geben praktische Tipps.
\n\n1. Umgebungsvorbereitung: Was installiert werden muss
\n\nBevor Sie Code schreiben, stellen Sie sicher, dass die erforderlichen PHP-Erweiterungen installiert sind. Für die Arbeit mit PostgreSQL wird die Erweiterung pdo_pgsql benötigt, für MongoDB mongodb (über PECL oder Composer).
Installation der Erweiterungen
\n- \n
- PostgreSQL: Kommentieren Sie die Zeile
extension=pdo_pgsqlin der php.ini aus oder installieren Sie sie über den Paketmanager (z. B.sudo apt install php-pgsql). \n - MongoDB: Verwenden Sie Composer:
composer require mongodb/mongodb– dies installiert die offizielle Bibliothek. \n
Überprüfen Sie nach der Installation, ob die Erweiterungen aktiv sind, indem Sie php -m | grep -i pgsql und php -m | grep -i mongodb ausführen.
2. PostgreSQL und PHP: Zuverlässigkeit und SQL
\n\nPostgreSQL ist ein leistungsstarkes relationales DBMS mit Unterstützung für ACID-Transaktionen, komplexe Abfragen und JSON-Felder. Für die Arbeit damit in PHP verwenden Sie am besten PDO (PHP Data Objects) – eine universelle Schnittstelle.
\n\nVerbindung zu PostgreSQL
\nErstellen Sie eine Datei connect_pgsql.php:
<?php\n$host = 'localhost';\n$dbname = 'testdb';\n$user = 'postgres';\n$pass = 'password';\n\ntry {\n $pdo = new PDO("pgsql:host=$host;dbname=$dbname", $user, $pass);\n $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n echo "Verbindung zu PostgreSQL erfolgreich!";\n} catch (PDOException $e) {\n die("Verbindungsfehler: " . $e->getMessage());\n}\n?>\n\nCRUD-Operationen am Beispiel der Tabelle users
\nErstellen wir eine Tabelle und führen grundlegende Abfragen durch.
\n\nTabelle erstellen
\n<?php\n$sql = "CREATE TABLE IF NOT EXISTS users (\n id SERIAL PRIMARY KEY,\n name VARCHAR(100) NOT NULL,\n email VARCHAR(150) UNIQUE NOT NULL,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n)";\n$pdo->exec($sql);\necho "Tabelle erstellt.";\n?>\n\nDaten einfügen (CREATE)
\n<?php\n$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");\n$stmt->execute(['name' => 'Ivan Petrov', 'email' => 'ivan@example.com']);\necho "Benutzer hinzugefügt.";\n?>\n\nDaten lesen (READ)
\n<?php\n$stmt = $pdo->query("SELECT * FROM users");\nwhile ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {\n echo "ID: {$row['id']}, Name: {$row['name']}, E-Mail: {$row['email']}<br>";\n}\n?>\n\nAktualisieren (UPDATE) und Löschen (DELETE)
\n<?php\n// Aktualisieren\n$stmt = $pdo->prepare("UPDATE users SET name = :name WHERE id = :id");\n$stmt->execute(['name' => 'Pyotr Sidorov', 'id' => 1]);\n\n// Löschen\n$stmt = $pdo->prepare("DELETE FROM users WHERE id = :id");\n$stmt->execute(['id' => 2]);\n?>\n\nTipp: Verwenden Sie immer vorbereitete Anweisungen (prepare) zum Schutz vor SQL-Injection.
\n\n3. MongoDB und PHP: Flexibilität ohne Schema
\n\nMongoDB speichert Daten in Form von BSON-Dokumenten (binäres JSON).