Примеры
Простой пример, в котором устанавливается соединение с 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 "Ошибка подключения к базе данных";
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 "Ошибка подключения к базе данных";
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>