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 — Abrir una conexión persistente con una base de datos InterBase
Descripción
Abre una conexión persistente con una base de datos InterBase.
ibase_pconnect() actúa de forma muy similar a ibase_connect() con dos diferencias significativas.
Primero, cuando se crea una conexión, la función intentará primero encontrar un enlace (persistente) ya abierto con los mismos parámetros. Si se encuentra uno, se devolverá un identificador para él, en lugar de abrir una nueva conexión.
Segundo, la conexión con el servidor InterBase no será cerrada cuando finalice la ejecución del script. En su lugar, el enlace permanecerá abierto para su uso futuro (ibase_close() no cerrará enlaces establecidos con ibase_pconnect()). Este tipo de enlace es por lo tanto llamado 'persistente'.
Lista de parámetros
- base_de_datos
-
El argumento base_de_datos debe ser una ruta válida al archivo de base de datos en el servidor en el que reside. Si el servidor no es local, debe ser precedido por 'nombre_host:' (TCP/IP), '//nombre_host/' (NetBEUI) o 'nombre_host@' (IPX/SPX), dependiendo del protocolo usado.
- nombre_usuario
-
El nombre de usuario. Puede ser definido mediante la directiva de php.ini ibase.default_user.
- contrasenya
-
La contraseña para nombre_usuario . Puede ser definida con la directiva de php.ini ibase.default_password.
- juego_caracteres
-
juego_caracteres es el juego de caracteres predeterminado para una base de datos.
- bufers
-
bufers es el número de búfers de base de datos a reservar para el caché en el lado del servidor. Si es 0 o se omite, el servidor elige su propio valor predeterminado.
- dialecto
-
dialecto selecciona el dialecto SQL predeterminado para cualquier sentencia ejecutada en la conexión, y su valor por omisión es el más alto soportado por las bibliotecas cliente. Este parámetro es funcional únicamente con InterBase 6 y versiones posteriores.
- rol
-
Funcional únicamente con InterBase 5 y versiones posteriores.
- sincronizar
-
Valores retornados
Devuelve un identificador de enlace InterBase en caso de éxito, o FALSE si ocurre un error.
Registro de cambios
| Versión | Descripción |
|---|---|
| 4.0.0 | Se agregaron los parámetros bufers , dialecto y rol |
ibase_pconnect
19-Apr-2006 05:18
