PHP Conference Japan 2024

cubrid_connect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_connect_with_url建立連線至 CUBRID 伺服器的環境

描述

cubrid_connect_with_url(
    string $conn_url,
    string $userid = ?,
    string $passwd = ?,
    bool $new_link = false
): resource

cubrid_connect_with_url() 函數用於建立連線至伺服器的環境,透過使用 URL 字串參數傳遞的連線資訊。如果 CUBRID 中啟用 HA 功能,您必須在此函數的 URL 字串參數中指定備用伺服器的連線資訊,該資訊用於發生故障時的容錯移轉。如果未提供使用者名稱和密碼,則預設會建立 "PUBLIC" 連線。

<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_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