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 = 30000;

   $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 = 30000;

   $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>