일반 특징

연결/트랜잭션

참고 cubrid_connect() 함수를 사용한다고 해서 데이터베이스 서버에 실제로 연결되는 것은 아니다. 데이터베이스 서버 연결이 필요한 함수가 호출되었을 때 실제로 연결이 이루어진다.

질의 처리

$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);
}

$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);
}

$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"];
   }
}

while (list($id, $name) = cubrid_fetch($req, CUBRID_NUM)) {
   echo $id;
   echo $name;
}

while ($row = cubrid_fetch($req, CUBRID_ASSOC)) {
   echo $row["id"];
   echo $row["name"];
}

카탈로그 연산

클래스, 가상 클래스, 속성, 메소드, 트리거, 제약 조건 등 데이터베이스의 스키마 정보는 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 모듈 에러) 중 하나이다.