Start · Sprachen · PHP · Referenz · dba_handlers

dba_handlers

Funktion

Gibt eine Liste aller verfügbaren DBA-Handler zurück, optional mit ausführlichen Versionsinformationen.

seit PHP 4.3.0 Kategorie: db

Signatur

dba_handlers(bool $full_info = false): array

Beschreibung

dba_handlers() liefert ein Array der Handler, die von der DBA-Erweiterung (Database Abstraction Layer) unterstützt werden. Diese Handler entsprechen den installierten Datenbank-Backends wie gdbm, ndbm, db4, cdb usw., die PHP beim Kompilieren eingebunden wurden.

Wenn der Parameter full_info auf true gesetzt wird, enthält das Rückgabe-Array statt einfacher Handler-Namen auch detaillierte Versionsinformationen zu jedem Handler – nützlich, um die zugrunde liegende Bibliotheksversion zu ermitteln.

Die Funktion ist besonders hilfreich, wenn man prüfen möchte, ob ein bestimmter Handler auf dem aktuellen System verfügbar ist, bevor man mit dba_open() oder dba_popen() eine Datenbank öffnet. So lassen sich Fehler durch fehlende Handler frühzeitig abfangen.

Parameter

Name Typ Default Beschreibung
$full_info bool false Wenn true, enthält das zurückgegebene Array zu jedem Handler eine Zeichenkette mit Versionsinformationen anstelle des bloßen Handler-Namens.

Rückgabewert

Typ
array
Beschreibung
Gibt ein Array zurück. Ohne full_info enthält es die Handler-Namen als Werte (z. B. 'gdbm', 'cdb'). Mit full_info = true ist es ein assoziatives Array, dessen Schlüssel die Handler-Namen und deren Werte Versionsdetails als Zeichenkette sind.

Beispiele

Alle verfügbaren DBA-Handler auflisten

<?php
$handlers = dba_handlers();
echo "Verfügbare DBA-Handler:" . PHP_EOL;
foreach ($handlers as $handler) {
    echo ' - ' . $handler . PHP_EOL;
}
?>
Verfügbare DBA-Handler: - gdbm - cdb - cdb_make - db4 - inifile - flatfile

Handler mit Versionsinformationen ausgeben und Verfügbarkeit prüfen

<?php
$handlers = dba_handlers(true);
echo "Handler mit Versionsinformationen:" . PHP_EOL;
foreach ($handlers as $name => $info) {
    echo " - {$name}: {$info}" . PHP_EOL;
}

// Prüfen, ob ein bestimmter Handler vorhanden ist
$wantedHandler = 'gdbm';
if (array_key_exists($wantedHandler, $handlers)) {
    echo "Handler '{$wantedHandler}' ist verfügbar." . PHP_EOL;
} else {
    echo "Handler '{$wantedHandler}' ist NICHT verfügbar." . PHP_EOL;
}
?>
Handler mit Versionsinformationen: - gdbm: GDBM version 1.18.1. 27/10/2018 (built Nov 15 2018 00:00:00) - cdb: 0.75, Daniel J. Bernstein - ... Handler 'gdbm' ist verfügbar.

// Wichtig · Fallstricke

Die verfügbaren Handler hängen davon ab, welche Bibliotheken beim Kompilieren von PHP eingebunden wurden. Auf verschiedenen Systemen oder PHP-Installationen kann das Ergebnis daher unterschiedlich ausfallen. Verlasse dich nicht auf das Vorhandensein eines bestimmten Handlers, ohne vorher dba_handlers() aufzurufen.

Einige Handler wie flatfile und inifile sind direkt in PHP integriert und daher immer verfügbar, sofern die DBA-Erweiterung geladen ist.