PHPKonf İstanbul PHP Conference 2015

ibase_pconnect

(PHP 5)

ibase_pconnectÖffnet eine persistente Verbindung zu einer InterBase-Datenbank

Beschreibung

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

Öffnet eine persistente Verbindung zu einer InterBase-Datenbank.

ibase_pconnect() agiert ähnlich der Funktion ibase_connect(), mit zwei Ausnahmen.

Erstens wird beim Verbindungs-Aufbau versucht, eine bereits bestehende (persistente) Verbindung zu finden, die mit den selben Parametern aufgebaut worden ist. Wird eine solche gefunden, wird statt eines neuen Verbindungs-Aufbaus die ID der bestehenden Verbindung zurückgegeben.

Zweitens wird beim Beenden des Skripts die Verbindung zum InterBase Server nicht beendet. Statt dessen wird die Verbindung für den weiteren Gebrauch beibehalten (ibase_close() beendet keine Verbindungen, die mittels ibase_pconnect() erzeugt wurden). Diese Art der Verbindung wird deshalb auch 'persistent' genannt.

Parameter-Liste

database

Das database-Argument muss ein gültiger Pfad zu einer bestehenden Datenbank des Servers sein. Ist der DB-Server nicht lokal, muss ihm - in Abhängigkeit vom benutzten Protokoll - ein 'hostname:' (bei TCP/IP), '//hostname/' (bei NetBEUI) oder 'hostname@' (IPX/SPX) vorangestellt werden.

username

Der Benutzername. Kann mit der ibase.default_user php.ini Direktive festgelegt werden.

password

Das Passwort für username. Kann mit der ibase.default_password php.ini Direktive festegelegt werden.

charset

charset ist der reguläre Zeichensatz der Datenbank.

buffers

Mit buffers geben sie die Anzahl der Datenbank-Cache-Buffer (serverseitig) an. Ist der Wert 0 oder nicht angegeben, benutzt der Server seine Default-Werte.

dialect

Mittels dialect bestimmen sie den Default-Wert des anzuwendenden SQL-Dialekts für alle Anweisungen während einer Datenbank-Verbindung (default ist der Client-seitig höchst verfügbare Dialekt). Dies wirkt nur mit InterBase 6 und höher.

role

Wirkt nur unter InterBase 5 und höher.

sync

Rückgabewerte

Gibt bei Erfolg eine Firebird/Interbase Verbindungs-ID zurück, oder FALSE im Fehlerfall.

Siehe auch

add a note add a note

User Contributed Notes 1 note

up
1
houston_roadrunner at yahoo dot com
9 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