PHP Conference Japan 2024

cubrid_pconnect_with_url

(PECL CUBRID >= 8.3.1)

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

描述

cubrid_pconnect_with_url(字符串 $conn_url, 字符串 $userid = ?, 字符串 $passwd = ?): 资源

建立到 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> := 秒

<milli_sec> := 毫秒

  • 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
"连接成功";
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
"连接成功";
$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