(PECL CUBRID >= 8.3.1)
cubrid_pconnect_with_url — 開啟與 CUBRID 伺服器的持續性連線
建立與 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 位址
時間 := 秒數
毫秒 := 毫秒
注意事項:
在 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);
}
?>