cubrid_pconnect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_pconnect_with_url打开到 CUBRID 服务器的持久连接

说明

cubrid_pconnect_with_url(string $conn_url, string $userid = ?, string $passwd = ?): resource

建立到 CUBRID 服务器的持久连接。

cubrid_pconnect_with_url() 的行为与 cubrid_connect_with_url() 非常相似,但有两个主要区别。

首先,在连接时,该函数会首先尝试查找一个(持久)链接,该链接已使用相同的主机、端口、数据库名和用户 ID 打开。如果找到一个,则将返回一个标识符,而不是打开一个新连接。

其次,当脚本执行结束时,与 SQL 服务器的连接不会关闭。相反,该链接将保持打开状态以供将来使用(cubrid_close()cubrid_disconnect() 不会关闭由 cubrid_pconnect_with_url() 建立的链接)。

因此,这种类型的链接称为“持久”。

<url> ::= CUBRID:<host>:<db_name>:<db_user>:<db_password>:[?<properties>]

<properties> ::= <property> [&<property>]

<properties> ::= alhosts=<alternative_hosts>[ &rctime=<time>]

<properties> ::= login_timeout=<milli_sec>

<properties> ::= query_timeout=<milli_sec>

<properties> ::= disconnect_on_query_timeout=true|false

<alternative_hosts> ::= <standby_broker1_host>:<port> [,<standby_broker2_host>:<port>]

<host> := HOSTNAME | IP_ADDR

<time> := SECOND

<milli_sec> := MILLI SECOND

  • host : 主数据库的主机名或 IP 地址
  • db_name : 数据库的名称
  • db_user : 数据库用户的名称
  • db_password : 数据库用户的密码
  • alhosts : 指定备用服务器的代理信息,当无法连接到活动服务器时,该信息用于故障转移。您可以为故障转移指定多个代理,并且将按 alhosts 中列出的顺序尝试连接到代理
  • rctime : 尝试连接到发生故障的活动代理之间的时间间隔。发生故障后,系统会连接到 althosts 指定的代理(故障转移),终止事务,然后每隔 rctime 尝试连接到主数据库的活动代理。默认值为 600 秒。
  • login_timeout : 数据库登录的超时值(单位:毫秒)。默认值为 0,表示无限期延迟。
  • query_timeout : 查询请求的超时值(单位:毫秒)。超时后,会发送一条取消请求查询传输到服务器的消息。返回值可能取决于 disconnect_on_query_timeout 配置;即使发送了取消请求的消息到服务器,该请求也可能成功。
  • disconnect_on_query_timeout : 配置一个值,指示是否在超时时立即返回正在执行的函数的错误。默认值为 false。

注意:

?: 在 PHP 连接 URL 中用作标识符,不能包含在密码中。以下是一个包含 "?:",因此不能用作连接 URL 的密码示例。

$url = "CUBRID:localhost:33000:tdb:dba:12?:?login_timeout=100";

包含 ?: 的密码可以作为单独的参数传递。

$url = "CUBRID:localhost:33000:tbd:::?login_timeout=100";

$conn = cubrid_pconnect_with_url ($url, "dba", "12?");

如果用户或密码为空,则不能删除 ":",以下是一个示例。

$url = "CUBRID:localhost:33000:demodb:::";

参数

conn_url

包含服务器连接信息的字符字符串。

userid

数据库的用户名。

passwd

用户密码。

返回值

连接标识符,当进程成功时,或者在失败时为 false

示例

示例 #1 cubrid_pconnect_with_url() 不带属性的 url 示例

<?php
$conn_url
= "CUBRID:127.0.0.1:33000:demodb:dba::";
$con = cubrid_pconnect_with_url ($conn_url);

if (
$con) {
echo
"connected successfully";
cubrid_execute($con, "create table person(id int,name char(16))");
$req =cubrid_execute($con, "insert into person values(1,'James')");

if (
$req) {
cubrid_close_request ($req);
cubrid_commit ($con);
} else {
cubrid_rollback ($con);
}
cubrid_disconnect ($con);
}
?>

示例 #2 cubrid_pconnect_with_url() 带有属性的 url 示例

<?php
$conn_url
= "CUBRID:127.0.0.1:33000:demodb:dba::?althost=10.34.63.132:33088&rctime=100";
$con = cubrid_pconnect_with_url ($conn_url);

if (
$con) {
echo
"connected successfully";
$req =cubrid_execute($con, "insert into person values(1,'James')");

if (
$req) {
cubrid_close_request ($req);
cubrid_commit ($con);
} else {
cubrid_rollback ($con);
}
cubrid_disconnect ($con);
}
?>

参见

添加备注

用户贡献的备注

此页面没有用户贡献的备注。
To Top