2024年PHP日本大会

cubrid_connect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_connect_with_url建立连接到CUBRID服务器的环境

描述

cubrid_connect_with_url(
    字符串 $conn_url,
    字符串 $userid = ?,
    字符串 $passwd = ?,
    布尔值 $new_link = false
): 资源

cubrid_connect_with_url() 函数用于使用通过URL字符串参数传递的连接信息来建立连接到服务器的环境。如果在CUBRID中启用了HA功能,则必须在该函数的URL字符串参数中指定备用服务器的连接信息,该信息在发生故障时用于故障转移。如果没有给出用户名和密码,则默认情况下将建立“PUBLIC”连接。

<url> ::= CUBRID:<主机>:<数据库名>:<数据库用户>:<数据库密码>:[?<属性>]

<属性> ::= <属性> [&<属性>]

<属性> ::= alhosts=<备用主机>[ &rctime=<时间>]

<属性> ::= login_timeout=<毫秒>

<属性> ::= query_timeout=<毫秒>

<属性> ::= disconnect_on_query_timeout=true|false

<备用主机> ::= <备用代理1主机>:<端口> [,<备用代理2主机>:<端口>]

<主机> := 主机名 | IP地址

<时间> := 秒

<毫秒> := 毫秒

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

注意:

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

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

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

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

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

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

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

参数

conn_url

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

userid

数据库用户名。

passwd

用户密码。

new_link

如果使用相同的参数第二次调用cubrid_connect_with_url(),则不会建立新的连接,而是返回已打开连接的连接标识符。new_link参数修改此行为,使cubrid_connect_with_url() 始终打开一个新连接,即使之前使用相同的参数调用过cubrid_connect_with_url()

返回值

进程成功时返回连接标识符,失败时返回 false

示例

示例 #1 cubrid_connect_with_url() 无属性的URL示例

<?php
$conn_url
= "CUBRID:localhost:33000:demodb:dba::";
$con = cubrid_connect_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_connect_with_url() 带属性的URL示例

<?php
$conn_url
= "CUBRID:127.0.0.1:33000:demodb:dba::?login_timeout=100";
$con = cubrid_connect_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);
}
?>

参见

添加注释

用户贡献的注释

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