To make a connection to a firebird database with pconnect many people like to use the SYSDBA, or database owner.
example:
$dbConnection = ibase_pconnect('path to db','SYSDBA','masterkey');
The above is fine unless you want to login in various user that have different permissions. To use permission make roles in the database, either as the database creator (or SYSDBA) and grant the roles to the various users.
If you login with...
$dbConnection = ibase_pconnect('path to db', 'USERNAME', 'userpassword');
...interbase will default your user to the PUBLIC role, which is created when the database is create and usualy has select rights on tables only. To get the proper role you will need to use all the parameters, like this...
$user='USERNAME';
$password='userpassword';
$role='MANAGER_HR';
$dbConnection = ibase_pconnect('path to db', $user, $password, '', 0, 3, $role, 0);
BTW - The "path to db", is formed like this...
---------------------
'localhost:c:/firebird/test_db/test.fdb'
---------------------
reading the interbase material, it states 3 connection methods, PHP appears to have selected the tcp type for us. So you can use localhost, or I suspect(never tested this myself) a ip address.
ibase_pconnect
(PHP 5)
ibase_pconnect — Abre uma conexão persistente com um banco de dados InterBase
Descrição
$database
[, string $username
[, string $password
[, string $charset
[, int $buffers
[, int $dialect
[, string $role
[, int $sync
]]]]]]]] )Abre uma conexão persistente com um banco de dados InterBase
ibase_pconnect() aje muito parecido com ibase_connect() com duas diferenças maiores.
Primeiro, ao conectar, a função irá primeiro tentar encontrar uma conexão (persistente) que já esteja aberta com os mesmos parâmetros. Se uma for encontrada, um identidicador para ela será retornado ao invés de abrir uma nova conexão.
Segundo, a conexão ao servidor InterBase não será fechada quando a execução do script terminar. Ao invés, a conexão permanecerá aberta para uso futuro ( ibase_close() não irá fechar conexões criadas por ibase_pconnect()). Este tipo de conexão é então chamado de "persistente".
Parâmetros
-
database -
O argumento
databasedeve ser um caminho válido para o arquivo do banco de dados no sevidor no qual reside. Se o servidor não for local, ele deve ser prefixado com 'hostname:' (TCP/IP), '//hostname/' (NetBEUI) ou 'hostname@' (IPX/SPX), dependendo do protocolo de conexão usado. -
username -
O nome de usuário, pode ser definido com a diretiva ibase.default_user do php.ini.
-
password -
A senha para
username. Pode ser definida com a diretiva ibase.default_password do php.ini. -
charset -
charseté o conjunto de caracteres padrão para o banco de dados. -
buffers -
buffersé o número de buffer do banco de dados a serem alocados para o cache do lado do servidor. Se for 0 ou omitido, o servidor escolhe seu próprio padrão. -
dialect -
dialectdefine o dialeto SQL padrão para qualquer comand executado na conexão, e o padrão é o mais alto suportado pelas bibliotecas do cliente. Funciona apenas com InterBase 6 e superior. -
role -
Funcional apenas com o InterBase 5 e posterior.
-
sync -
Valor Retornado
Retorna um identificador de conexão InterBase em caso de sucesso, ou FALSE em caso de erro.
Changelog
| Versão | Descrição |
|---|---|
| 4.0.0 |
Os parâmetros buffers, dialect
e role foram adicionados
|
Veja Também
- ibase_close() - Fecha uma conexão com um banco de dados InterBase
- ibase_connect() - Abre uma conexão com um banco de dados InterBase
