Ovrimos SQL
Взаимодействие с базами данных
🕛 01.11.2006, 14:03
Ovrimos SQL Server - это клиент-серверная реляционная БД с поддержкой быстрых транзакций и "web-возможностями (http://www. ovrimos.com/). Для поддержки ovrimos в РНР необходимо скомпилировать его с параметром конфигурирования -with-ovrimos. Также необходимо установить библиотеку sqlcli, входящую я комплект поставки Ovrimos SQL Server. <?php
Sconn = ovrTnos_connect(" server, сот;" "800Г. "admin", "passwrd").
if ($conn != 0) { echo ("Connection ok!"),
// select from a system tdble $res = ovnmos_exec (Iconn.
"select table_id. tablejtame from sys.tables"),
if ($res != 0) { echo "Statement ok!": ovrimos result_all ($res).
ovnmos_free_result ($res): } ovrimos close(Sconn). } ?>
ovrimos_connect
Подключение к серверу и выбор БД
int ovrimos_connect (string host, string db. string user, string password)
Возвращает дескриптор подключения или FALSE - при ошибке. В аргументе host указывается имя сервера или его IP-адрес, в db указывается либо имя БД, либо номер порта подключения. Также указываются имя пользователя и его пароль.
ovrimos_close
Закрытие указанного подключения
void ovrimos_close (int connection)
Все незавершенные транзакции отменяются.
ovrimos_close_all
Закрытие всех подключений
void ovrimos_close_a"ll (void)
Все незавершенные транзакции отменяются.
ovrimos_cursor
Получение типа курсора
int ovrimos_cursor (int resulted)
Полезно при выполнении позиционированных обновлений или удалениях.
ovrimos_longreadlen
Установка числа возвращаемых байтов для длинных полей int ovriraos_longreadlen (int result_id, int length)
Для полей типа LONG VARCHAR и LONG VARBINARY, по умолчанию, возвращается 0 байтов, но можно установить произвольное значение в аргументе length.
ovrimos_prepare
Подготовка запроса
int ovrimos_prepare (int connection_id, string query)
Возвращает FALSE (при ошибке) или дескриптор запроса, используемый для его последующего исполнения функцией ovrimos_execute().
<?php $conn=ovrimos_connect
("dbjiost". "8001". "admin", "password");
if ($conn'=0) { echo "Connection ok!";
$res=ovrimos_prepare ($conn.
"select tablejd. table_name from sys.tables
where table_id=l"); if ($res ' = 0) {
echo "Prepare ok!"; if (ovnmos_execute ($res))
{ echo "Execute ok!\n". ovnmos_result_all ($res);
) else { echo "Execute not ok!"; }
ovnmos_free_result ($res): } else {
echo "Prepare not ok!\n": } ovnmos_close (Sconn);} ?>
ovrimos_execute
Выполнение подготовленного запроса
int ovrimos_execute (int result_id [, array parameters_array])
Запрос должен быть предварительно подготовлен функцией ovrimos_ preparet). Возвращает TRUE или FALSE - при ошибке. Если запрос имеет параметры (обозначенные знаком вопроса), их значения передаются в массиве parameters_array.
ovrimos_exec
Выполнение запроса
int ovrimos_exec (int connection_id, string query)
Возвращает дескриптор возвращенного набора записей или FALSE - при ошибке. Запрос не должен содержать параметров.
ovrimos_num_rows
Получение числа измененных записей в БД
int ovrimos_num_rows (int result_id)
Функция возвращает число записей, которые были изменены запросом.
<?php Sconn = ovrimos_connect
("dbjiost". "8001". "admin", "password").
if ($conn i= 0) { echo "Connection ok!":
Sres - ovrimos_exec (Sconn. "update test set i=5"):
if ($res != 0) { echo "Statement ok!":
echo ovrimos_num_rows ($res).
" Записей изменено \п": ovnmos_free_result (Sres): }
ovrimos_close (Sconn): } ?>
ovrimos_num_fields
Получение числа полей, возвращенных запросом
int ovrimos_num_fields (int result_id)
ovrimos_fetch_into
Занесение записи в массив
int ovrimos_fetch_into (int resu!t_id, array resu!t_array [, string how [, int rownumber]])
Функция сохраняет поля записи в массиве result_array, который должен передаваться по ссылке. Какая запись будет сохранена, указывается в аргументе how, который может принимать одно из значений: «Next» (по умолчанию), «Prev», «First», «Last», «Absolute» (для этого случая требуется указать номер записи в аргументе rownumber). Регистр не учитывается. Возвращает TRUE или FALSE - при ошибке.
<?php $conn=ovrimos_connect
("neptune", "8001". "admin", "password");
if ($conn!=0) { echo "Connection ok":
$res=ovrimos_exec (Sconn."select t_id. t_name from tbl"):
if ($res != 0) {
echo "Statement ok!"; if (ovrimos_fetch_into
($res. &Srow)) { list ($table_id. $table_name)
= $row. echo "t_id=".$table_id.". tjiame=",
$table_name."\n"; if
(ovnmos_fetch_into ($res. &$row))
{ / list ($table_id, $table_name) = $row:
echo "t_id=".$table_id.". t_name=",$table_name."\n"; j
} else { \. echo "Next; error\n"; } else {
echo "First; error\n"; } ovnmos_free result ($res); }
ovnmos_close ($conn); ?>
ovrimos_fetch_row
Получение записи
int ovrimos_fetch_row (int result_id [, int how [, int rowjiumber]])
Выбирает запись из возвращенных запросом для того, чтобы ее данные можно было получить функцией ovrimos_resu"lt(). Возвращает TRUE или FALSE - при ошибке.
<?рhр Sconn = ovrimos_connect
("remote.host". "8001". "admin", "password");
if (Sconn !- 0) { echo "Connection ok!";
$res=ovrimos_exec ($conn, "select t_id. t_name from tbl"):
if ($res != 0) { echo "Statement ok!":
if (ovnmos_fetch_row ($res. "First")) { $table_id = ovrimos_result ($res. 1): $table_name = ovrimos_resu1t ($res. 2): echo "t_id=" $table_id.".
t_name=".$table_name."\n"; if
(ovrimos_fetch_row ($res. "Next")) {
$table_id = ovnmos_result ($res. "t_id"):
$t_name = ovrimos_result ($res. "t_name");
echo "t_id=" Stable_id ". t_name=" Stjname "\n";
} else { echo "Next errorXn": } } else {
echo "First- error\n". }
ovnmos_free_result ($res); } ovnmos_close
(Sconn);
ovrimos_result
Получение поля записи
int ovrimos_result (int resultjid, mixed field)
Возвращает поле записи, возвращенной запросом. Поле может быть указано его именем (или порядковым номером, начиная с 1) в аргументе field. Запись должна быть предварительно выбрана функцией ovrimos_fetch_row().
ovrimos_result_all
Распечатка результата запроса в таблице HTML
int ovrimos_result_all (int resultjd [, string format])
Возвращает TRUE или FALSE - при ошибке.
<?php Sconn = ovnmos_connect
("db_host". "8001". "admin", "password");
if (Sconn != 0) { echo "Connection ok!";
$res = ovrimos_prepare
(Sconn. "SELECT tablejid. table_name
FROM sys.tables WHERE tablejd = 7");
if (Sres != 0) { echo "Prepare ok!";
if (ovnmos_execute (ires. array(3))J {
ovrimos_result_all (Sres); } else {
erho "Fxecute not ok!": }
ovnmos_free_result (Srts); } else {
echo "Prepare not ok!\n". } ovnmos_close
(Sconn): } ?>
Далее приводится расширенная версия приведенного выше сценария, выводящая метаинформацию.
Example 2. Ovnmos_result_all with meta-information
<?php Sconn - ovrimos_connect
("db_host". "8001". "admin", "password"):
if (Sconn '= 0) { echo "Connection ok.1".
$reb ^ ovnmos_exec (Sconn.
"select table_id. tablejiame from
sys.tables where tabloid = 1") if (Sres != 0) { ,
echo "Statement ok! cu>-sor="
ovrimos_cursor (Sres) "\p"; f
Scolnb = ovnmos_num_fields (Sres):
echo "Полей = " .Scolnb."\n". [
for ($1=1: Si<=$colnb: $i++) {
Sname = ovrimos_field_name (Sres. Si);
Stype = ovnmos_field_type (Sres. Si).
Slen = ovrimos_field_len (Sres. Si):
echo "Поле Si Имя: Sname
Тип: Stype разиер=" $!РП."\П"; }
ovnmos_result_all (Sres).
ovrimos_free_result (Sres): } ovrimos_close (Sconn). } ?>
ovrimos_field_num
Получение порядкового номера поля
int ovrimos_field_num (Int result_id. string fieldjiame)
ovrimos_field_name
Получение имени поля
int ovrimos_field_name (int result^id, int fieldjiumber)
Поле указывается его порядковым (начиная с 1) номером fieldjiumber.
ovrimos_field_type
Получение типа поля
int ovrimos_field_type (int resu!t_id, int field_number)
ovrimos_field_len
Получение размера поля
int ovrimos_fieldjen (int result_id, int field_number)
ovrimos_free_result
Уничтожение набора возвращенных записей
int ovrimos_free_result (int result_id)
ovrimos_commit
Завершение транзакции
int ovrimos_commit (int connection_id)
ovrimos_rollback
Отмена транзакции
int ovrimos_rollback (int connection_id)