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 — Ouvre une connexion persistante à une base de données InterBase
Description
Ouvre une connexion persistante à une base de données InterBase.
ibase_pconnect() se comporte similairement à ibase_connect(), avec deux différences majeures.
La première est que, lors de la connexion, la fonction va essayer de trouver une connexion (persistante) déjà ouverte. Si elle la trouve, cette dernière sera retournée, plutôt qu'une nouvelle connexion. Sinon, une nouvelle connexion sera ouverte.
La deuxième est que la connexion ne sera pas fermée à la fin du script, mais restera ouverte pour utilisation ultérieure. (ibase_close() ne fermera pas une connexion ouverte avec ibase_pconnect()). Ce type de lien est alors dit 'persistant'.
Liste de paramètres
- database
-
L'argument database doit être un chemin valide vers le fichier de la base de données sur le serveur où il réside. Si le serveur n'est pas local, il doit être préfixé avec soit 'hostname:' (TCP/IP), '//hostname/' (NetBEUI) ou 'hostname@' (IPX/SPX), suivant le protocole utilisé.
- username
-
Le nom d'utilisateur. Peut être défini avec la directive ibase.default_user du php.ini.
- password
-
Le mot de passe pour l'utilisateur username . Peut être défini avec la directive ibase.default_password du php.ini.
- charset
-
charset est le jeu de caractères par défaut pour la base de données.
- buffers
-
buffers est le nombre de buffers de la base de données à allouer pour le cache côté serveur. Si ce paramètre vaut 0 ou s'il est omis, le serveur choisira lui-même ce nombre.
- dialect
-
dialect sélectionne le dialecte SQL par défaut pour toutes les requêtes exécutées dans la connexion, et vaudra par défaut, le plus haut supporté par la bibliothèque cliente. Ne fonctionne qu'avec InterBase 6 et supérieur.
- role
-
Ne fonctionne qu'avec InterBase 5 et supérieur.
- sync
-
Valeurs de retour
Retourne un identifiant de connexion InterBase en cas de succès, ou FALSE si une erreur survient.
Historique
| Version | Description |
|---|---|
| 4.0.0 | Les paramètres buffers , dialect et role ont été ajoutés |
ibase_pconnect
19-Apr-2006 06:18
