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

用户名。可以使用 ibase.default_user php.ini 指令设置。

password

username 的密码。可以使用 ibase.default_password php.ini 指令设置。

charset

charset 是数据库的默认字符集。

buffers

buffers 是要为服务器端缓存分配的数据库缓冲区数量。如果为 0 或省略,服务器将选择其自己的默认值。

dialect

dialect 选择连接中执行的任何语句的默认 SQL 方言,它默认为客户端库支持的最高版本。仅在 InterBase 6 及更高版本中有效。

role

仅在 InterBase 5 及更高版本中有效。

sync

返回值

如果成功,则返回一个 InterBase 连接标识符,否则返回 false

参见

添加注释

用户贡献的注释 1 条注释

-1
houston_roadrunner at yahoo dot com
18 年前
要使用 pconnect 连接到 Firebird 数据库,许多人喜欢使用 SYSDBA 或数据库所有者。
例如
$dbConnection = ibase_pconnect('数据库路径', 'SYSDBA', 'masterkey');

如果只想登录各种具有不同权限的用户,则上述方法是可行的。要使用权限,您需要在数据库中创建角色,无论是作为数据库创建者(或 SYSDBA)还是授予各种用户角色。

如果您使用...
$dbConnection = ibase_pconnect('数据库路径', '用户名', '用户密码');
...Interbase 将默认您的用户为 PUBLIC 角色,该角色是在创建数据库时创建的,通常只有对表的 SELECT 权限。要获取正确的角色,您需要使用所有参数,如下所示...
$user='用户名';
$password='用户密码';
$role='MANAGER_HR';
$dbConnection = ibase_pconnect('数据库路径', $user, $password, '', 0, 3, $role, 0);

顺便说一下 - “数据库路径” 的格式如下...
---------------------
'localhost:c:/firebird/test_db/test.fdb'
---------------------

阅读 Interbase 文档,它指出 3 种连接方法,PHP 似乎为我们选择了 TCP 类型。因此您可以使用 localhost,或者我怀疑(我自己从未测试过)IP 地址。
To Top