Signatur
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
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;
}
?>
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;
}
?>
// 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.