Примеры

Простой пример, в котором устанавливается соединение с CUBRID. В этом разделе рассказывается о самых базовых вещах и особенностях, на которые следует обратить внимание. Следующий код будет осуществлять соединение с CUBRID, что подразумевает, что сервер и брокер CUBRID запущены.

Пример ниже использует базу данных demodb, которая создается по умолчанию при установке. Убедитесь, что она создана.

Пример #1 Пример извлечения данных

<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=euc-kr">
    </head>
    <body>
    <center>
    <table border=2>
    <?php
        
/**
         * Задаем информация для соединения. host_ip - это IP адрес,
         * на котором запущен брокер CUBRID (например localhost).
         * host_port - соответственно его порт.
         * Порт задается по умолчанию при установке.
         * Подробности можно узнать в "Administrator's Guide."
         */
        
$host_ip "localhost";
        
$host_port 33000;
        
$db_name "demodb";
        
/**
         * Соединяемся с сервером CUBRID. Не производим фактического соединения, а
         * только получаем информацию о нем. Причина, по которой мы не делаем
         * фактического соединения в том, что бы транзакции обрабатывались более
         * эффективно в трехзвенной архитектуре.
         */
        
$cubrid_con = @cubrid_connect($host_ip$host_port$db_name);
 
        if (!
$cubrid_con) {
            echo 
"Database Connection Error";
            exit;
        }
    
?>
    <?php
        $sql 
"select sports, count(players) as players from event group by sports";
        
/**
         * Запрашиваем у сервера CUBRID результат SQL-запроса.
         * Теперь производим фактическое соединение с сервером CUBRID.
         */
        
$result cubrid_execute($cubrid_con$sql);
 
        if (
$result) {
            
/**
             * Получаем имена столбцов из результирующего набора.
             */
            
$columns cubrid_column_names($result);
            
/**
             * Получаем количество столбцов в результирующем наборе.
             */
            
$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>");
            }
        }
        
/**
         * Модуль PHP в CUBRID работает в трехуровневой архитектуре. Даже когда
         * вызывается SELECT для обработки транзакций, он обрабатывается как часть
         * транзакции. action. Следовательно, транзакцию надо либо подтвердить, либо
         * откатить, даже когда вызывается SELECT.
         */
        
cubrid_commit($cubrid_con);
        
cubrid_disconnect($cubrid_con);
    
?>
    </body>
    </html>

Пример #2 Пример вставки данных

<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=euc- kr">
    </head>
    <body>
    <center>
    <table border=2>
    <?php
        
/**
         * host_ip - IP адрес сервера, где установлен брокер CUBRID
         * host_port - порт, на котором он слушает
         * db_name - имя базы данных CUBRID
         */
        
$host_ip "localhost";
        
$host_port 33000;
        
$db_name "demodb";
        
$cubrid_con = @cubrid_connect($host_ip$host_port$db_name);
 
        if (!
$cubrid_con) {
            echo 
"Database Connection Error";
            exit;
        }
    
?>
    <?php
        $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) {
            
/**
             * Обработали успешно, можно коммитить.
             */
            
cubrid_commit($cubrid_con);
            echo(
"Inserted successfully ");
        } else {
            
/**
             * Произошла ошибка, значит выводим ее на экран и откатываемся.
             */
            
echo(cubrid_error_msg());
            
cubrid_rollback($cubrid_con);
        }
        
cubrid_disconnect($cubrid_con);
    
?>
    </body>
    </html>