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() 建立的連結)。

因此,這種連結稱為「持續性」連結。

網址 ::= CUBRID:主機:資料庫名稱:資料庫使用者:資料庫密碼:[?屬性]

屬性 ::= 屬性 [&屬性]

屬性 ::= alhosts=替代主機[ &rctime=時間]

屬性 ::= login_timeout=毫秒

屬性 ::= query_timeout=毫秒

屬性 ::= disconnect_on_query_timeout=true|false

替代主機 ::= 備援代理伺服器1主機:埠號 [ ,備援代理伺服器2主機:埠號 ]

主機 := 主機名稱 | IP 位址

時間 := 秒數

毫秒 := 毫秒

  • host(主機):主要資料庫的主機名稱或 IP 位址
  • db_name(資料庫名稱):資料庫的名稱
  • db_user(資料庫使用者):資料庫使用者的名稱
  • db_password(資料庫密碼):資料庫使用者的密碼
  • alhosts(替代主機):指定備用伺服器的代理伺服器資訊,用於在無法連線到活動伺服器時進行故障轉移。您可以指定多個代理伺服器進行故障轉移,並按照 alhosts 中列出的順序嘗試連線到這些代理伺服器。
  • rctime(重新連線時間):嘗試重新連線到發生故障的活動代理伺服器之間的時間間隔。發生故障後,系統會連線到 alhosts 指定的代理伺服器(故障轉移),終止交易,然後每隔 rctime 嘗試連線到主要資料庫的活動代理伺服器。預設值為 600 秒。
  • login_timeout(登入逾時):資料庫登入的逾時值(單位:毫秒)。預設值為 0,表示無限期延遲。
  • query_timeout(查詢逾時):查詢請求的逾時值(單位:毫秒)。逾時時,會發送訊息以取消傳送到伺服器的查詢請求。傳回值可能取決於 disconnect_on_query_timeout 設定;即使已將取消請求的訊息傳送到伺服器,該請求也可能成功。
  • disconnect_on_query_timeout(查詢逾時時斷線):設定逾時時是否立即返回正在執行的函式錯誤的值。預設值為 false。

注意事項:

在 PHP 連線網址中用作識別碼的 ?: 不能包含在密碼中。以下是一個無效的密碼範例,因為它包含「?:」。

$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