# dba_popen

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_popen — Öffnet eine persistente Datenbank-Verbindung

### Beschreibung

dba_popen(
string `$path`,
string `$mode`,
?string `$handler` = `null`,
int `$permission` = 0644,
int `$map_size` = 0,
?int `$flags` = `null`
): Dba\Connection|false

dba_popen() stellt eine persistente Datenbankinstanz für `path` mit `mode` her und benutzt dabei den Handler `handler`.

### Parameter-Liste

`path`

  Ein gültiger Pfad im Dateisystem.

`mode`

  Das ist `r` für lesenden Zugriff, `w` für lesenden und schreibenden Zugriff auf eine existierende Datenbank, `c` für lesenden und schreibenden Zugriff und Erstellen der Datenbank, falls sie noch nicht existiert, und `n` für das Erstellen einer Datenbank, bzw. deren Zurücksetzen auf die Größe 0, falls sie schon existiert, und lesenden und schreibenden Zugriff.

`handler`

  Der Name des Handlers, der für den Zugriff auf `path` benutzt werden soll. Er bekommt alle optionalen Argumente übergeben, die der Funktion dba_popen() mitgegeben wurden, und kann damit in deren Name verfahren. Wenn `handler` `null` ist, wird der Standard-Handler aufgerufen.

`permission`

  Ein optionaler Integer-Parameter, der an den Treiber übergeben wird. Er hat dieselbe Bedeutung wie der Parameter `permissions` bei chmod(). Der Standardwert ist `0644`.

  Der Parameter `permission` wird vom `db1`-, `db2`-, `db3`-, `db4`-, `dbm`-, `gdbm`-, `ndbm`- und `lmdb`-Treiber unterstützt.

`map_size`

  Ein optionaler Integer-Parameter, der an den Treiber übergeben wird. Sein Wert sollte ein Vielfaches der Größe einer Speicherseite (Page Size) des Betriebssystems sein. Wenn Null angegeben wird, wird die Standard-Map-Size verwendet.

  Der Parameter `map_size` wird nur vom `lmdb`-Treiber akzeptiert.

`flags`

  Die Flags, die an den Datenbanktreiber übergeben werden. Derzeit unterstützt nur der LMDB-Treiber die Flags `DBA_LMDB_USE_SUB_DIR` und `DBA_LMDB_NO_SUB_DIR`.

### Rückgabewerte

Gibt bei Erfolg eine Instanz von Dba\Connection zurück. Bei einem Fehler wird `false` zurückgegeben.

### Fehler/Exceptions

Wenn `handler` `null` ist, aber kein Standard-Handler zur Verfügung steht, wird `false` zurückgegeben und ein Fehler der Stufe `E_WARNING` ausgegeben.

### Changelog

Version | Beschreibung
--- | ---
8.4.0 | Gibt nun eine Instanz von Dba\Connection zurück; zuvor wurde eine Ressource zurückgegeben.
8.2.0 | Der Parameter `flags` wurde hinzugefügt.
8.1.0 | Der Parameter `handler` ist nun nullable (akzeptiert den `null`-Wert).
7.3.14, 7.4.2 | Der `lmdb`-Treiber unterstützt nun zusätzlich den Parmeter `map_size`.

### Siehe auch

- dba_open() - Öffnet eine Datenbank
- dba_close() - Schließt eine DBA-Datenbank

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open