PHP Australia Conference 2015

ibase_pconnect

(PHP 5)

ibase_pconnect Crea una connessione persistente ad un database Interbase

Descrizione

int ibase_pconnect ( string $database [, string $username [, string $password [, string $charset [, int $buffers [, int $dialect [, string $role ]]]]]] )

ibase_pconnect() agisce in modo molto simile a ibase_connect() con due differenze principali. Innanzitutto, durante la connessione, la funzione cercherà prima di trovare un collegamento (persistente) che è già stato aperto con gli stessi parametri. Se viene trovato, il suo identificatore verrà restituito al posto di aprire una nuova connessione. In secondo luogo, la connessione al server InterBase non verrà chiusa al termine dell'esecuzione dello script. Invece, il collegamento resterà aperto per un uso futuro (ibase_close() non chiuderà i collegamenti stabiliti da ibase_pconnect()). Questo tipo di collegamento è perciò chiamato 'persistente'.

Nota:

buffers è stato aggiunto in PHP4-RC2.

Nota:

dialect è stato aggiunto in PHP4-RC2. Funziona soltanto con InterBase 6 e superiori.

Nota:

role è stato aggiunto in PHP4-RC2. Funziona soltanto con InterBase 5 e superiori.

Vedere anche ibase_connect() per il significato dei parametri passati a questa funzione. Sono esattamente gli stessi.

add a note add a note

User Contributed Notes 1 note

up
1
houston_roadrunner at yahoo dot com
8 years ago
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.
To Top