(PECL CUBRID >= 8.3.1)
cubrid_connect_with_url — 建立連線至 CUBRID 伺服器的環境
$conn_url
,$userid
= ?,$passwd
= ?,$new_link
= false
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
注意:
在 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);
}
?>