(PHP 4, PHP 5, PHP 7, PHP 8)
dba_open — Abre um banco de dados
$path
,$mode
,$handler
= null
,$permission
= 0644,$map_size
= 0,$flags
= null
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
.
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 ou 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
.
Nota:
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âmetromode
.
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
.
Retorna uma instância de Dba\Connection em caso de sucesso ou false
em caso de falha.
false
é retornado e um erro de nível E_WARNING
é emitido quando
handler
for null
mas não houver manipulador padrão.
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 .
|