1. Übersicht
  2. Datenbanken
  3. PostgreSQL und SQLite

PostgreSQL und SQLite

Ganz gleich wie bei MySQL/MariaDB erfolgt die Erstellung sowie Verwaltung von Datenbanken des Typs PostgreSQL und dessen Benutzern im Kundenmenü unter dem Menüpunkt 🡪 Datenbanken – auch hier kann dazu der Artikel zum Thema für eine Anleitung herangezogen werden.

PostgreSQL scheint vielen Anwendern anfangs etwas komplexer zu sein, was hinsichtlich der Administration auch sicherlich stimmt. Da wir die Administration jedoch übernehmen, entfällt jeglicher Aufwand in diese Richtung.

Ebenso steht für die Einsicht in diese Datenbanken eine direkt über bplaced bereitgestellte Verwaltungsoberfläche PgAdmin zur Verfügung.

Mit PgAdmin in PostgreSQL einsteigen

Die Adresse für den Zugriff zur Oberfläche setzt sich immer aus pgadmin.kontoname.bplaced.net zusammen und kann im Kundenmenü mit einem Direktlink aufgerufen werden.

Nach einem Klick auf den in der Seitenleiste angezeigten Server namens bplaced PostgreSQL ist die Loginmaske zu sehen:

phpPgAdmin Loginmaske

Dabei wird nach den Logindaten gefragt, welche dabei nicht den ggf. abweichenden Datenbanknamen meinen, sondern den Datenbankbenutzer und dessen Passwort.

Übersicht der Datenbanken und Schemas

Im Anschluss nach dem Login geht es dann gleich zur Übersicht, welche alle Datenbanken auflistet, zu denen der Benutzer Zugriffsrechte hat.

Übersicht der Datenbanken

Im Gegensatz zu MySQL/MariaDB ist die Ansicht primär auf sogenannte Schemas ausgelegt. Diese sind dafür gedacht, Tabellen zu gruppieren und so auch deren Verwaltung zu vereinfachen, statt etwa eine Vielzahl von Tabellen als eine einzige Liste zu führen.

Übersicht der Schemas und Tabellen

PostgreSQL kennt übrigens keine „Tabellentreiber“ bzw. Engines und verwendet stattdessen durchgehend eine einheitliche Architektur.

Verbindung mittels PHP herstellen

Wie auch bei MySQL/MariaDB empfehlen wir PDO (PHP Data Objects) für die Interaktion mit Datenbanken.

Mit PDO kann damit auf PostgreSQL und SQLite, wie auch auf MySQL/MariaDB zugegriffen werden. An den folgenden Beispielen wird entweder eine Verbindung mit PostgreSQL hergestellt – oder mit SQLite, indem bei letzterem eine Datei angegeben wird.

Denn SQLite ist dateibasiert und verwendet keinen eigenen Datenbankserver. Daher die Datenbank-Datei wird auf dem Webspace abgelegt und direkt angesprochen – ohne Benutzer oder Passwort.

<?php

// für PostgreSQL: zuerst bestimmen wir die Konfiguration:
$host     = 'localhost';            // entspricht immer 'localhost'
$dbname   = 'kontoname_wordpress';  // Datenbankname
$benutzer = 'kontoname';            // Datenbankbenutzer
$passwort = 'geheimespasswort123!'; // das gewählte Passwort

// .. oder für SQLite: wir bestimmen den Dateinamen für die Datenbank
$dbfile = 'meine_datenbank.db';

try {
    // nun erstellen wir entweder eine PDO-Instanz für PostgreSQL
    $pdo = new PDO(
        "pgsql:host=$host;dbname=$dbname;charset=utf8",
        $benutzer,
        $passwort
    );

    // .. oder eine für SQLite
    $pdo = new PDO("sqlite:$dbfile");

     // PDO-Fehlermodus einstellen (für Anzeige von Fehlern hilfreich)
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    echo 'Verbindung erfolgreich! <br>';

} catch (PDOException $exception) {
    // Fehler behandeln
    echo 'Fehler bei der Verbindung: ' . $exception->getMessage();
}

Daten einfügen und abfragen

Das Ausführen weiterer Befehle ist gleich nach aufgebauter Verbindung möglich.

Je nachdem ob PostgreSQL oder SQLite verwendet wird, wird im folgenden eine Demo-Tabelle namens „benutzer“ erstellt, welche im Anschluss mit Daten befüllt und gleich abgefragt werden kann:

<?php

try {
    // Erstellen der Tabelle, mit zwei Spalten "name" und "email"
    $sql = 'CREATE TABLE IF NOT EXISTS benutzer (
                name  varchar(50)  NOT NULL,
                email varchar(100) NOT NULL
    )';
    // Befehl zum Erstellen ausführen
    $pdo->exec($sql);

    // SQL-Befehl mit Platzhaltern zum Einfügen von Daten erstellen
    $sql = 'INSERT INTO benutzer (name, email) VALUES (:name, :email);';
    $statement = $pdo->prepare($sql);

    // Platzhalter mit Werten füllen
    $statement->execute([
        ':name'  => 'Hansi Hamsterbacke',
        ':email' => 'radmeister3000@hamsterpost.net'
    ]);

    // Abfrage der Tabelle "benutzer"
    $sql = "SELECT * FROM benutzer";
    $statement = $pdo->query($sql);

    // Ergebnisse durchgehen
    while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
        printf(
            'Benutzername: %s, E-Mail: %s <br>',
            $row['name'],
            $row['email'],
        );
    }
    
} catch (PDOException $exception) {
    echo "Ein Fehler ist aufgetreten: " . $exception->getMessage();
}

Bei Fragen stehen wir natürlich gerne unter unter my.bplaced.net/support zur Verfügung. Ganz hilfreich ist für eine genaue Diagnose wenn etwas nicht klappen sollte, die genaue Fehlermeldung.

Aktualisiert am 8. April 2025
War dieser Artikel hilfreich?

Ähnliche Artikel

Unterstützung zu allen Themen
Fragen? Oder etwas hat nicht geklappt? Gerne helfen wir weiter!
Support kontaktieren