CakeFest 2024: The Official CakePHP Conference

ibase_pconnect

(PHP 5, PHP 7 < 7.4.0)

ibase_pconnectОткрывает постоянное соединение с базой данных InterBase

Описание

ibase_pconnect(
    string $database = ?,
    string $username = ?,
    string $password = ?,
    string $charset = ?,
    int $buffers = ?,
    int $dialect = ?,
    string $role = ?,
    int $sync = ?
): resource

Открывает постоянное соединение с базой данных InterBase.

Принцип работы ibase_pconnect() очень похож на ibase_connect() с двумя основными отличиями.

Во-первых, при подключении функция сначала попытается найти (постоянную) ссылку, которая уже открыта с такими же параметрами. Если она будет найдена, вместо открытия нового соединения будет возвращён её идентификатор.

Во-вторых, соединение с сервером InterBase не будет закрыто по окончании выполнения скрипта. Вместо этого ссылка останется открытой для использования в дальнейшем (ibase_close() не будет закрывать ссылки, установленные ibase_pconnect()). Поэтому этот тип ссылки называется "постоянным".

Список параметров

database

Аргумент database должен быть допустимым путём к файлу базы данных на сервере, на котором он находится. Если сервер не является локальным, он должен иметь префикс 'hostname:' (TCP/IP), '//hostname/' (NetBEUI) или 'hostname@' (IPX/SPX), в зависимости от используемого протокола подключения.

username

Имя пользователя. Можно установить с помощью директивы php.ini ibase.default_user.

password

Пароль для username. Можно установить с помощью директивы php.ini ibase.default_password.

charset

charset - набор символов по умолчанию для базы данных.

buffers

buffers - количество буферов базы данных, выделяемых для кеша на стороне сервера. Если значение равно 0 или опущено, сервер выбирает собственное значение по умолчанию.

dialect

dialect выбирает диалект SQL по умолчанию для любого выражения, выполняемого в соединении, и по умолчанию выбирает самый высокий диалект, поддерживаемый клиентскими библиотеками. Работает только с InterBase 6 и выше.

role

Работает только с InterBase 5 и выше.

sync

Возвращаемые значения

Возвращает идентификатор ссылки InterBase в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ibase_close() - Закрывает соединение с базой данных InterBase
  • ibase_connect() - Открывает соединение с базой данных

add a note

User Contributed Notes 1 note

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