dba_open

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

dba_openAbre um banco de dados

Descrição

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

dba_open() estabelece uma instância de banco de dados para o arquivo especificado em path no modo definido por mode usando o manipulador informado em handler.

Parâmetros

path

Normalmente um caminho comum no seu sistema de arquivos.

mode

Define os modos: r para acesso de leitura, w para acesso de leitura/gravação a um baco de dados já existente, c para leitura/gravação e criação de banco de dados se ainda não existir, e n para criar, truncar e acesso leitura/gravação. O banco de dados é criado modo de árvore binária (BTree), outros modos (como Hash or Queue) não são suportados.

Além disso, pode ser definido o método de trava do banco de dados com o próximo caractere. Use l para travar o banco de dados com um arquivo .lck ou d para travar o próprio arquivo de banco de dados. É importante que todas as aplicações façam isso de forma consistente.

Se a intenção for testar o acesso e não esperar pela trava, pode-se adicionar t como terceiro caractere. Quando houver certeza absoluta de que não é necessário travar o banco de dados, pode-se fazê-lo usando - em vez de l ou d. Quando nenhum dos caracteres d, l ou - forem usados, o DBA irá travar o arquivo de banco de dados como faria com d.

Note:

Só pode haver um gravador para um arquivo de banco de dados. Quando um DBA é usados em um servidor web e mais de uma solicitação requerer operações de gravação, elas só poderão ser feitas uma após a outra. Também não será permitido ler durante a gravação. A extensão DBA usa travas para evitar isso. Veja a tabela a seguir:

Travas DBA
já aberto mode = "rl" mode = "rlt" mode = "wl" mode = "wlt" mode = "rd" mode = "rdt" mode = "wd" mode = "wdt"
não aberto ok ok ok ok ok ok ok ok
mode = "rl" ok ok espera falso ilegal ilegal ilegal ilegal
mode = "wl" espera falso espera falso ilegal ilegal ilegal ilegal
mode = "rd" ilegal ilegal ilegal ilegal ok ok espera falso
mode = "wd" ilegal ilegal ilegal ilegal espera falso espera falso
  • ok: a segunda chamada será bem sucedida.
  • espera: a segunda chamada espera até que dba_close() seja chamada para a primeira.
  • falso: a segunda chamada retorna falso.
  • ilegal: não se deve misturar os modificadores "l" e "d" no parâmetro mode.
handler

O nome do manipulador que deve ser usado para acessar o arquivo definido em path. São passados ​​todos os parâmetros opcionais fornecidos para dba_open() e pode agir em nome deles. Se handler for null, o manipulador padrão será invocado.

permission

Parâmetro opcional int que é passado ao driver. Tem o mesmo significado que o parâmetro permissions de chmod() (*nix) e o padrão é 0644.

Os drivers db1, db2, db3, db4, dbm, gdbm, ndbm e lmdb suportam o parâmetro permission.

map_size

Parâmetro opcional int que é passado ao driver. Seu valor deve ser um múltiplo do tamanho da página do sistema operacional, ou zero, para usar o tamanho padrão do mapa.

Somente o driver lmdb aceita o parâmetro map_size.

flags

Opções a serem passadas aos drivers de banco de dados. Se for null, as opções padrão serão passadas. Atualmente, apenas o driver LMDB suporta as opções DBA_LMDB_USE_SUB_DIR e DBA_LMDB_NO_SUB_DIR.

Valor Retornado

Retorna uma instância de Dba\Connection em caso de sucesso ou false em caso de falha.

Erros/Exceções

false é retornado e um erro de nível E_WARNING é emitido quando handler for null mas não houver manipulador padrão.

Registro de Alterações

Versão Descrição
8.4.0 Retorna agora uma instância de Dba\Connection; anteriormente, retornava um resource.
8.2.0 flags foi adicionado.
8.2.0 handler agora pode ser nulo.
7.3.14, 7.4.2 O driver lmdb agora suporta o parâmetro adicional map_size.

Veja Também