dba_open
(PHP 4, PHP 5, PHP 7, PHP 8)
dba_open — Abre um banco de dados
Descrição
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, en
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 oud
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 del
oud
. Quando nenhum dos caracteresd
,l
ou-
forem usados, o DBA irá travar o arquivo de banco de dados como faria comd
.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â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. Sehandler
fornull
, 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
elmdb
suportam o parâmetropermission
. 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âmetromap_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çõesDBA_LMDB_USE_SUB_DIR
eDBA_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
- dba_popen() - Abre o banco de dados de forma persistente
- dba_close() - Fecha um banco de dados DBA