cubrid_pconnect_with_url
(PECL CUBRID >= 8.3.1)
cubrid_pconnect_with_url — CUBRID 서버에 영구 연결 열기
설명
cubrid_pconnect_with_url(string $conn_url
, string $userid
= ?, string $passwd
= ?): resource
CUBRID 서버에 지속적으로 연결합니다.
cubrid_pconnect_with_url()은 두 가지 주요 차이점이 있지만 cubrid_connect_with_url()과 매우 유사하게 작동합니다.
첫째, 연결할 때 함수는 먼저 동일한 호스트, 포트, dbname 및 사용자 ID로 이미 열려 있는 (영구) 링크를 찾으려고 시도합니다. 하나가 발견되면 새 연결을 여는 대신 식별자가 반환됩니다.
둘째, 스크립트 실행이 종료될 때 SQL 서버에 대한 연결이 닫히지 않습니다. 대신, 링크는 추후 사용을 위해 열린 상태로 유지됩니다(cubrid_close() 또는 cubrid_disconnect()는 cubrid_pconnect_with_url()에 의해 설정된 링크를 닫지 않습니다).
따라서 이러한 유형의 링크를 'persistent'이라고 합니다.
<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 : Active 서버에 접속이 불가능한 경우 Failover에 사용하는 Standby 서버의 브로커 정보를 지정한다. Failover를 위해 여러 브로커를 지정할 수 있으며 alhosts에 나열된 순서대로 브로커에 연결을 시도합니다.
- rctime : 장애가 발생한 활성 브로커에 대한 연결 시도 사이의 간격입니다. 장애가 발생하면 시스템은 althosts가 지정한 브로커에 접속(failover)하고 트랜잭션을 종료하고 매 rctime마다 마스터 데이터베이스의 활성 브로커에 접속을 시도한다. 기본값은 600초입니다.
- login_timeout : 데이터베이스 로그인에 대한 타임아웃 값(단위: msec.)입니다. 기본값은 0으로 무한 연기를 의미합니다.
- query_timeout : 쿼리 요청에 대한 타임아웃 값(단위: msec.)입니다. 타임아웃 시 서버로 전달된 쿼리 요청을 취소하라는 메시지를 보낸다. 반환 값은 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_pconnect_with_url ($url, "dba", "12?");
user 또는 password가 비어 있는 경우 ":
"를 삭제할 수 없습니다. 다음은 예시입니다.
$url = "CUBRID:localhost:33000:demodb:::";
매개변수
conn_url
- 서버 연결 정보가 포함된 문자열입니다.
userid
- 데이터베이스의 사용자 이름입니다.
passwd
- 사용자 암호.
반환 값
프로세스가 성공하면 연결 식별자이고 실패하면 false
입니다.
Examples
예제 #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 "connected successfully";
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 "connected successfully";
$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);
}
?>
기타
- cubrid_connect() - CUBRID 서버에 대한 연결 열기
- cubrid_connect_with_url() - CUBRID 서버에 접속하기 위한 환경 구축
- cubrid_pconnect() - CUBRID 서버에 대한 영구 연결 열기
- cubrid_disconnect() - 데이터베이스 연결 닫기
- cubrid_close() - CUBRID 연결 닫기