CascadiaPHP 2024

Примеры

Простой пример, в котором устанавливается соединение с 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>
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top