PHP 예제 프로그램

PHP와 CUBRID를 연동하는 것을 간단하게 구현한 예제다. 가장 기본적인 기능과 특별히 주의해야 할 내용만을 다룬다. 이 예제를 수행하기 위해서는 먼저 접속하려는 데이터베이스와 CUBRID 브로커가 구동되어 있어야 한다. 이 예제에서는 설치 시 자동 생성되는 demodb 데이터베이스를 사용한다.

조회, 데이터 가져오기 예제

<html>
<head>
<meta http-equiv='content-type' content='text/html; charset=euc-kr'>
</head>
<body>
<center>
<table border=2>
<?
   // CUBRID에 접속하기 위한 서버 정보를 설정한다. host_ip는 CUBRID 브로커가 설치된 곳의 IP address(여기서는     localhost)이며, host_port는 CUBRID 브로커의 port 번호이다. port 번호는 설치 시 디폴트 값이다. 자세한 내용    은 "관리자 안내서"를 참조한다.
   $host_ip = "localhost";
   $host_port = 33000;
   $db_name = "demodb";
   // CUBRID 서버에 접속한다. 그러나 실제로 접속하지는 않고, 접속 정보만 보관한다. 실제로 접속하지 않는 이유는 3-    tier 구조이므로 transaction 처리를 효율적으로 수행하기 위해서다.
   $cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);
   if (!$cubrid_con) {
       echo "DB 접속 오류";
       exit;
   }
?>
<?
   $sql = "select sports, count(players) as players from event group by sports";
   // SQL 문장에 대하여 CUBRID 서버로 결과를 요청한다. 이 때 실제로 CUBRID 서버로 접속한다.
   $result = cubrid_execute($cubrid_con, $sql);
   if ($result) {
       // SQL 처리 결과로 만들어진 결과 집합에 대하여 컬럼 이름을 얻어온다.
       $columns = cubrid_column_names($result);
       // SQL 처리 결과로 만들어진 결과 집합에 대하여 컬럼개수를 얻어온다.
       $num_fields = cubrid_num_cols($result);  
       // 화면에 결과 집합의 각 컬럼 이름을 보여준다.
       echo("<tr>");
       while (list($key, $colname) = each($columns)) {
       echo("<td align=center>$colname</td>");
       }
       echo("</tr>");
       // 결과 집합에서 결과를 가져온다.
       while ($row = cubrid_fetch($result)) {
           echo("<tr>");
           for ($i = 0; $i < $num_fields; $i++) {
               echo("<td align=center>");
               echo($row[$i]);
               echo("</td>");
           }
           echo("</tr>");
       }
   }
   // CUBRID의 PHP 모듈은 3-tier 구조로 동작하며, transaction 처리를 위하여 SELECT를 하더라도 transaction의    일부로 처리한다. 따라서 원활한 동작과 성능을 위하여 SELECT 처리를 했더라도, commit(또는 rollback) 처리를 하    여 transaction을 정리해야 한다.
   cubrid_commit($cubrid_con);
   cubrid_disconnect($cubrid_con);
?>
</body></html>

데이터 삽입 예제

<html>
<head>
<meta http-equiv='content-type' content='text/html; charset=euc- kr'>
</head>
<body>
<center>
<table border=2>
<?
   $host_ip = "localhost";
   $host_port = 33000;
    $db_name = "demodb";
   $cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);
   if (!$cubrid_con) {
        echo "DB 접속 오류";
       exit;
   }
?>
<?
   $sql = "insert into olympic (host_year,host_nation,host_city,opening_date,closing_date) values     (2008, 'China', 'Beijing', to_date('08-08-2008','mm-dd- yyyy'),to_date('08-24-2008','mm-dd-yyyy'))    ;"
   $result = cubrid_execute($cubrid_con, $sql);
   if ($result) {
       // 정상적으로 처리 되었으므로 commit 처리한다.
       cubrid_commit($cubrid_con);
       echo("성공적으로 입력되었습니다");
   } else {
       // 에러가 발생했으 므로, 에러 메세지를 출력한 후 rollback 처리한다.
       echo(cubrid_error_msg());
       cubrid_commit($cubrid_con);
   }
   cubrid_disconnect($cubrid_con);
?>
</body></html>