Arbeiten mit Datenbanken in PHP: PostgreSQL und MongoDB

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

Arbeiten mit Datenbanken in PHP: PostgreSQL und MongoDB



Moderne Webentwicklung mit PHP kommt selten ohne Interaktion mit Datenbanken aus. Die Wahl zwischen einem relationalen (PostgreSQL) und einem dokumentenorientierten (MongoDB) System hängt von der Datenstruktur, den Leistungsanforderungen und der Skalierbarkeit des Projekts ab. In diesem Artikel behandeln wir, wie man eine Verbindung zu beiden DBMS herstellt, grundlegende Operationen durchführt und worauf man bei der Auswahl achten sollte.



1. Verbindung zu PostgreSQL über PDO



PostgreSQL ist ein leistungsstarkes relationales DBMS mit Unterstützung für ACID-Transaktionen, komplexe Abfragen und erweiterbare Datentypen. In PHP wird empfohlen, die PDO-Erweiterung (PHP Data Objects) für die Arbeit damit zu verwenden, die eine einheitliche Schnittstelle für verschiedene Datenbanken bietet.



Stellen Sie zunächst sicher, dass die Treiber pdo_pgsql und pgsql auf Ihrem System installiert sind. Sie können dies über phpinfo() überprüfen.



Beispiel für Verbindung und Dateneinfügung



<?php$host = 'localhost';$dbname = 'my_database';$user = 'my_user';$password = 'my_password';

try { // DSN (Data Source Name) erstellen $dsn = "pgsql:host=$host;dbname=$dbname"; // Verbinden $pdo = new PDO($dsn, $user, $password, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ]); echo "Verbindung zu PostgreSQL erfolgreich hergestellt!<br>"; // Dateneinfügung mit vorbereiteten Anweisungen $sql = "INSERT INTO users (name, email, age) VALUES (:name, :email, :age)"; $stmt = $pdo->prepare($sql); $stmt->execute([ ':name' => 'Ivan Petrov', ':email' => 'ivan@example.com', ':age' => 28 ]); echo "Benutzer hinzugefügt. ID: " . $pdo->lastInsertId(); } catch (PDOException $e) { echo "Verbindungsfehler: " . $e->getMessage(); die();}?>


Die Verwendung vorbereiteter Anweisungen schützt vor SQL-Injection und verbessert die Leistung bei wiederholten ähnlichen Abfragen.



Datenabruf mit Filterung



<?php$minAge = 25;$search = "SELECT id, name, email, age FROM users WHERE age > :minAge ORDER BY age DESC";$stmt = $pdo->prepare($search);$stmt->execute([':minAge' => $minAge]);

$users = $stmt->fetchAll();

foreach ($users as $user) { echo "{$user['name']} ({$user['age']} Jahre alt) - {$user['email']}<br>";}?>


PostgreSQL unterstützt komplexe JOINs, Unterabfragen, Fensterfunktionen und Volltextsuche — das macht es zur idealen Wahl für Projekte mit strengen Anforderungen an die Datenintegrität.



2. Verbindung zu MongoDB über den offiziellen Treiber



MongoDB ist eine NoSQL-Datenbank, die Daten in Form von Dokumenten (JSON-ähnlichen BSON-Objekten) speichert. Sie eignet sich gut für Projekte mit flexiblen Schemata, schnellem Prototyping und horizontaler Skalierung.



Für die Arbeit mit MongoDB in PHP werden die mongodb-Erweiterung und die mongodb/mongodb-Bibliothek (installiert über Composer) verwendet.



Installieren des Treibers



# Über Composer im Projektverzeichniscomposer require mongodb/mongodb


Beispiel für Verbindung und Dokumenteneinfügung



<?phprequire_once 'vendor/autoload.php';

use MongoDB\\Client;use MongoDB\\Driver\\Exception\\Exception;

try { // Mit dem lokalen Server verbinden $client = new Client("mongodb://localhost:27017"); // Datenbank und Sammlung auswählen $collection = $client->my_database->users; // Ein einzelnes Dokument einfügen $insertResult = $collection->insertOne([ 'name' => 'Anna Smirnova', 'email' => 'anna@example.com', 'age' => 32, 'interests' => ['programming', 'reading', 'traveling'],

Blogs

Buchempfehlungen