cubrid_connect_with_url
설명
conn_url 인자로 전달된 접속 정보를 이용하여 데이터베이스로 연결을 시도한다. PHP에서 HA 기능을 사용하는 경우, 이 함수의 conn_url 인자에 active 서버의 연결 정보 및 장애 발생 시 failover할 standby 서버의 연결 정보를 명시해야 한다.
구문
resource cubrid_connect_with_url (string $conn_url [, string $db_user, string $db_password[, bool $new_link]])
<conn_url> ::= cci:cubrid:<host>:<db_name>:<db_user>:<db_password>:[?<properties>]
<properties> ::= <property> [&<property>]
<property> ::= login_timeout=<milli_sec>
<property> ::= query_timeout=<milli_sec>
<property> ::= disconnect_on_query_timeout=true|false
<property> ::= autocommit=<autocommit_mode>
<property> ::= althosts=<alternative_hosts> [ &rctime=<time>]
<alternative_hosts> ::= <host>:<port> [,<host>:<port>]
<host> := HOSTNAME | IP_ADDR
<time> := SECOND
- conn_url : 서버 연결 정보 문자 스트링
- host : 마스터 데이터베이스의 호스트 이름 또는 IP 주소
- db_name : 데이터베이스 이름
- db_user : 데이터베이스 사용자 이름
- db_password : 데이터베이스 사용자 비밀번호
- login_timeout : 데이터베이스에 로그인 시 타임아웃 값. 단위는 밀리초(msec)이다. 이 시간을 초과하면 에러를 반환한다. 기본값은 0이며, 무한 대기를 의미한다.
- query_timeout : 질의 요청 타임아웃 값. 단위는 밀리초(msec)이다. 질의 요청에 대한 타임아웃 값을 설정한다. 타임아웃이 발생하면 서버로 보낸 질의 요청에 대한 취소 메시지를 보낸다. 질의를 수행한 함수의 반환 값은 disconnect_on_query_timeout의 설정에 따라 달라질 수 있으며, 서버에 취소 메시지를 보내도 그 요청은 성공 할 수 있다.
- disconnect_on_query_timeout : 질의 요청 타임아웃 시 수행 중인 함수의 오류 즉시 반환 여부를 설정한다. 기본값은 false이다. 질의 요청에 대한 타임아웃이 발생했을 때, 이 값이 true이면 서버에 취소 메시지를 보낸 후 소켓을 닫고 에러를 반환한다. 이 경우 사용자는 명시적으로 cubrid_disconnect 함수를 통해 데이터베이스 연결 핸들을 닫아야 한다. false이면 서버에 취소 메시지를 보낸 후, 서버의 질의 요청에 대한 응답이 올 때 까지 대기한다.
- autocommit=true/false : 데이터베이스 연결 시 자동 커밋 모드 설정 여부
- althosts=standby_broker1_host, standby_broker2_host, ... : active 서버에 연결할 수 없는 경우, 그 다음으로 연결을 시도(failover)할 standby 서버의 브로커 정보를 나타낸다. failover할 브로커를 여러 개 지정할 수 있고, althosts에 나열한 순서대로 연결을 시도한다.
- rctime : 장애가 발생했던 active 브로커에 연결을 시도하는 주기이다. 장애 발생 후 althosts에 명시한 브로커로 접속하여(failover) 트랜잭션을 종료한 후, rctime만큼 시간이 경과할 때마다 마스터 데이터베이스의 active 브로커에 연결을 시도한다. 기본값은 600초이다.
- db_user: 데이터베이스 사용자 이름
- db_passwd : 데이터베이스 사용자 비밀번호
- new_link : 한 HTTP 요청 내에서 연결 환경이 같은 경우 기존 연결의 재사용 여부. true이면 새로 연결 식별자를 생성하며, false이면 주소, 포트번호, 데이터베이스 이름, 사용자 이름이 같은 연결이 이미 존재하는 경우 이를 재사용한다. 기본값은 false이다. 단, 이 옵션은 HTTP 요청 내에서만 유효하며, HTTP 요청이 끝나면 모든 연결을 종료한다.
리턴 값
예제
<?php
$con = cubrid_connect_with_url("cci:CUBRID:localhost:33000:demodb:dba::?autocommit=true");
?>
주의 사항
- URL 문자열에서 콜론(:)과 물음표(?)는 구분자로 사용되므로, URL 문자열에 암호를 포함하는 경우 암호의 일부에 콜론이나 물음표를 사용할 수 없다. 암호에 콜론이나 물음표를 사용하려면 사용자 이름(db_user)과 암호(db_password)를 별도의 인자로 지정해야 한다.