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 4, PHP 5)
ibase_pconnect — Abre uma conexão persistente com um banco de dados InterBase
Descrição
ibase_pconnect() funciona de modo parecido ibase_connect() com duas maiores diferenças. Primeiro, ao conectar, irá primeiro tentar encontrar uma conexão (persistente) que já esteja aberta com os mesmos parâmetros. Se for encontrada uma, é retornado um identificador par ela ao invés de abrir uma nova conexão. Segundo, a conexão com o servidor InterBase não será fechada ao final da execução do scrip. Ao invés, permanecerá aberta para uso futuro (ibase_close() não irá fechar conexões abrtas com ibase_pconnect()). Este tipo de conexão é por isso chamada 'persistente'.
Nota: buffers foi adicionado no PHP 4.0.0.
Nota: dialect foi adicionado no PHP 4.0.0. Funciona somente com o InterBase 6 ou posterior.
Nota: role foi adicionado no PHP 4.0.0. Funciona somente com o InterBase 5 ou posterior.
Veja também ibase_close() e ibase_connect() para indicações sobre os parâmetros passados para esta função. São exatamente os mesmo.
ibase_pconnect
19-Apr-2006 05:18
