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 — Otwiera stałe połączenie z serwerem Firebird/InterBase
Opis
ibase_pconnect() zachowuje się prawie jak ibase_connect() z dwoma zasadniczymi różnicami. Pierwsza, podczas łączenia funkcja najpierw spróbuje znaleźć połączenie (stałe) już otwarte dla tych samych parametrów (host, użytkownik, hasło, ...) Jeżeli je znajdzie, jego identyfikator zostanie zwrócony zamiast otwierania nowego połączenia. Druga, połączenie z serwerem Firebird/Interbase nie zostanie zamknięte po zakończeniu wykonywania skryptu. Zamiast tego połączenie pozostanie otwarte do późniejszego użycia (ibase_close() nie zamyka połączeń nawiązanych za pomocą ibase_pconnect()). Dlatego też ten typ połączeń nazywany jest 'stałym'.
Informacja: Opcjonalny argument bufory został dodany w PHP 4.0.0.
Informacja: Opcjonalny argument dialekt został dodany w PHP 4.0.0 i działa tylko z InterBase 6 i późniejszymi wersjami.
Informacja: Opcjonalny argument rola został dodany w PHP 4.0.0 i działa tylko z InterBase 5 i późniejszymi wersjami.
Zobacz również ibase_close() i ibase_connect() aby dowiedzieć się znaczenia argumentów przekazywanych do tej funkcji. One są dokładnie takie same.
ibase_pconnect
19-Apr-2006 05:18
