데이터베이스 연결 : 데이터베이스 응용에서 첫 단계는 cubrid_connect() 함수 또는 cubrid_connect_with_url() 함수를 사용하는 것으로 데이터베이스 연결을 제공한다. cubrid_connect() 함수 또는 cubrid_connect_with_url() 함수가 성공적으로 수행되면, 데이터베이스를 사용할 수 있는 모든 함수를 사용할 수 있다. 응용을 완전히 끝내기 전에 cubrid_disconnect() 함수를 호출하는 것은 매우 중요하다. cubrid_disconnect() 함수는 현재 발생된 트랜잭션을 끝마치고 cubrid_connect() 함수에 의해 생성된 연결 핸들과 모든 요청 핸들을 종료한다.
CUBRID PHP는 트랜잭션과 자동 커밋 모드를 지원한다. 자동 커밋 모드에서는 하나의 질의마다 하나의 트랜잭션이 이루어진다. cubrid_get_autocommit() 함수를 사용하면 현재 연결의 자동 커밋 모드 여부를 확인할 수 있으며, cubrid_set_autocommit() 함수를 사용하면 현재 연결의 자동 커밋 모드 여부를 설정할 수 있다. 자동 커밋 모드의 기본값은 OFF이다. 다음 예와 같이 cubrid_connect_with_url() 함수를 사용해도 자동 커밋 모드 여부를 설정할 수 있다.
$con = cubrid_connect_with_url("cci:CUBRID:localhost:33000:demodb:dba::?autocommit=true");
cubrid_set_autocommit() 함수에서 자동 커밋 모드를 OFF로 설정하면 커밋 또는 롤백을 명시하여 트랜잭션을 처리할 수 있다. 트랜잭션을 커밋하려면 cubrid_commit() 함수를 사용하고 트랜잭션을 롤백하려면 cubrid_rollback() 함수를 사용한다. cubrid_disconnect() 함수는 트랜잭션을 종료하고 커밋되지 않은 작업을 롤백한다.
질의 실행
다음은 질의 실행을 위한 기본 단계이다.
$con = cubrid_connect("192.168.0.10", 33000, "demodb");
if($con) {
$req = cubrid_execute($con, "select * from code");
if($req) {
while ($row = cubrid_fetch($req)) {
echo $row["s_name"];
echo $row["f_name"];
}
cubrid_close_request($req);
}
cubrid_disconnect($con);
}
질의 결과의 열 타입과 이름
cubrid_column_types() 함수를 사용하여 열 타입이 들어있는 배열을 얻을 수 있고, cubrid_column_names() 함수를 사용하여 열의 이름이 들어있는 배열을 얻을 수 있다.
$req = cubrid_execute($con, "select host_year, host_city from olympic");
if($req) {
$col_types = cubrid_column_types($req);
$col_names = cubrid_column_names($req);
while (list($key, $col_type) = each($col_types)) {
echo $col_type;
}
while (list($key, $col_name) = each($col_names))
echo $col_name;
}
cubrid_close_request($req);
}
커서 조정
질의 결과의 위치를 설정할 수 있다. cubrid_move_cursor() 함수를 사용하여 커서를 세 가지 포인트(질의 결과의 처음, 현재 커서 위치, 질의 결과의 끝) 중 한 포인트로부터 일정한 위치로 이동할 수 있다.
$req = cubrid_execute($con, "select host_year, host_city from olympic order by host_year");
if($req) {
cubrid_move_cursor($req, 20, CUBRID_CURSOR_CURRENT)
while ($row = cubrid_fetch($req, CUBRID_ASSOC)) {
echo $row["host_year"].” “;
echo $row["host_city"].”\n”;
}
}
결과 배열 타입
cubrid_fetch() 함수의 결과에는 세가지 종류의 배열 타입 중 하나가 사용된다. cubrid_fetch() 함수가 호출될 때 배열의 타입을 결정할 수 있다. 그 중 하나인 연관배열은 문자열 색인을 사용한다. 두 번째로 수치배열은 숫자 순서 색인을 사용한다. 마지막 배열은 연관배열과 수치배열을 둘 다 포함한다.
클래스, 가상 클래스, 속성, 메소드, 트리거, 제약 조건 등 데이터베이스의 스키마 정보는 cubrid_schema() 함수를 호출하여 얻을 수 있다. cubrid_schema() 함수의 리턴 값은 2차원 배열이다.
$pk = cubrid_schema($con, CUBRID_SCH_PRIMARY_KEY, "game");
if ($pk) {
print_r($pk);
}
$fk = cubrid_schema($con, CUBRID_SCH_IMPORTED_KEYS, "game");
if ($fk) {
print_r($fk);
}
에러가 발생하면 대부분의 PHP 인터페이스 함수는 에러 메시지를 출력하고 false나 -1을 반환한다. cubrid_error_msg(), cubrid_error_code() 그리고 cubrid_error_code_facility() 함수를 사용하면 각각 에러 메시지, 에러 코드, 에러 기능 코드를 확인할 수 있다.
cubrid_error_code_facility() 함수의 결과 값은 CUBRID_FACILITY_DBMS (DBMS 에러), CUBRID_FACILITY_CAS (CAS 서버 에러), CUBRID_FACILITY_CCI (CCI 에러), CUBRID_FACILITY_CLIENT (PHP 모듈 에러) 중 하나이다.