일반 특징

연결/트랜잭션
질의 처리

질의 실행

다음은 질의 실행을 위한 기본 단계이다.

  1. 연결 핸들 생성
  2. SQL 질의 요청에 대한 요청 핸들 생성
  3. 결과 가져오기
  4. 요청 핸들 종료

$con = cubrid_connect("192.168.1.12", 12345, "demodb");

if($con) {

   $req = cubrid_execute($con, "select * from dept");

   if($req) {

       while ($row = cubrid_fetch($req)) {

       echo $row["name"];

       echo $row["position"];

       }

       cubrid_close_request($req);

   }

   cubrid_disconnect($con);

}

질의 결과의 열 타입과 이름

cubrid_column_types() 함수를 사용하여 열 타입이 들어있는 배열을 얻을 수 있고, cubrid_column_names() 함수를 사용하여 열의 이름이 들어있는 배열을 얻을 수 있다.

$req = cubrid_execute($con, "select * from person");

if($req) {

   $coltypes = cubrid_column_types($req);

   $colnames = cubrid_column_names($req);

 

   while (list($key, $coltype) = each ($coltypes))

   echo $coltype;

 

   while (list($key, $colname) = each ($colnames))

   echo $colname

 

   cubrid_close_request(#req);

}

커서 조정

질의 결과의 위치를 설정할 수 있다. cubrid_move_cursor() 함수를 사용하여 커서를 세 가지 포인트(질의 결과의 처음, 현재 커서 위치, 질의 결과의 끝) 중 한 포인트로부터 일정한 위치로 이동할 수 있다.

$req = cubrid_execute($con, "select * from person");

if($req) {

   cubrid_move_cursor ($req, 10, CUBRID_CURSOR_CURRENT);

   while ($row = cubrid_fetch($req, CUBRID_ASSOC)) {

       echo $row["id"];

       echo $row["name"];

   }

}

결과 배열 타입

cubrid_fetch() 함수의 결과에는 세가지 종류의 배열 타입 중 하나가 사용된다. cubrid_fetch() 함수가 호출될 때 배열의 타입을 결정할 수 있다. 그 중 하나인 연관배열은 문자열 색인을 사용한다. 두 번째로 수치배열은 숫자 순서 색인을 사용한다. 마지막 배열은 연관배열과 수치배열을 둘 다 포함한다.

카탈로그 연산

클래스, 가상 클래스, 속성, 메소드, 트리거, 제약 조건 등 데이터베이스의 스키마 정보는 cubrid_schema() 함수를 호출하여 얻을 수 있다. cubrid_schema() 함수의 리턴 값은 2차원 배열이다.

$attrs=cubrid_schema($con,CUBRID_SCH_ATTRIBUTE,"person");

if ($attrs != -1) {

   while (list ($key, $attr) = each($attrs)) {

       echo $row["NAME"];

       echo $row["DOMAIN"];

   }

}

에러 처리

에러가 발생하면 대부분의 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 모듈 에러) 중 하나이다.