Arbeit mit Datenbanken in PHP: PostgreSQL und MongoDB für Anfänger

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung: Warum PHP und Datenbanken eine starke Kombination sind

\n\n

Jede 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\n

Fü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\n

1. Umgebungsvorbereitung: Was installiert werden muss

\n\n

Bevor 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).

\n\n

Installation der Erweiterungen

\n
    \n
  • PostgreSQL: Kommentieren Sie die Zeile extension=pdo_pgsql in 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
\n\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.

\n\n

2. PostgreSQL und PHP: Zuverlässigkeit und SQL

\n\n

PostgreSQL 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\n

Verbindung zu PostgreSQL

\n

Erstellen Sie eine Datei connect_pgsql.php:

\n
<?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\n

CRUD-Operationen am Beispiel der Tabelle users

\n

Erstellen wir eine Tabelle und führen grundlegende Abfragen durch.

\n\n

Tabelle 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\n

Daten 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\n

Daten 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\n

Aktualisieren (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\n

Tipp: Verwenden Sie immer vorbereitete Anweisungen (prepare) zum Schutz vor SQL-Injection.

\n\n

3. MongoDB und PHP: Flexibilität ohne Schema

\n\n

MongoDB speichert Daten in Form von BSON-Dokumenten (binäres JSON).

Blogs

Buchempfehlungen