uznay-chto-hochesh.narod.ru

-сайт для интересующихся людей

Учебник - справочник по PHP.

Здесь Вы найдете что хотели

Меню сайта
Главная
Введение
Справочник языка
Возможности РНР
Функции (справочник)
Расширение РНР 4.0
F.A.Q. частые вопросы
Приложения
Алфавитный указатель
Друзья сайта
сделай сайт сам! пособие по html
изучение html и web-дизайна для новичков
Бесплатная отправка смс на все операторы
Реклама
 
НазадВперёд

sesam_query

(только PHP 3 CVS)

sesam_query - выполняет SESAM SQL-запрос и готовит результат.

Описание

string sesam_query (string query [, bool scrollable])

Возвращает  SESAM "result identifier" при успехе, FALSE при ошибке.

Ресурс "result_id" используется другими функциями для запрашивания результатов выполнения query/запроса.

sesam_query() отправляет запрос текущей активной БД на сервере. Могут выполняться как "immediate" SQL-операторы, так и "select type" запросы. Если выполняется "immediate" оператор, то курсор не выделяется, а последующий вызов sesam_fetch_row() или sesam_fetch_result() возвращает пустой результат (нулевые столбцы, указывающие end-of-result). Для "select type" операторов выделяются дескриптор результата и (прокручиваемый или последовательный, в зависимости от необязательного булева параметра scrollable) курсор. Если scrollable отсутствует, курсор будет последовательным/sequential.

При использовании "scrollable" курсоров курсор может свободно позиционироваться в результирующем наборе. Для каждого "scrollable" запроса имеются глобальные значения по умолчанию для прокручиваемого/scrolling типа (инициализируется: SESAM_SEEK_NEXT) и смещение прокрутки, которое может быть установлено однократно функцией sesam_seek_row(), либо каждый раз при извлечении ряда функцией sesam_fetch_row().

Для "immediate" операторов количество задействованных рядов сохраняется для запрашивания функцией sesam_affected_rows().

См. также sesam_fetch_row() и sesam_fetch_result().
Пример 1. Показать все ряды таблицы "phone" как html-таблицу
<?php
if (!sesam_connect ("phonedb", "demo", "otto"))
    die ("cannot connect");
$result = sesam_query ("select * from phone");
if (!$result) {
    $err = sesam_diagnostic();
    die ($err["errmsg"]);
}
echo "<TABLE BORDER>\n";
// Добавить шапку title с именами столбцов над результатом:
if ($cols = sesam_field_array ($result)) {
    echo " <TR><TH COLSPAN=".$cols["count"].">Result:</TH></TR>\n";
    echo " <TR>\n";
    for ($col = 0; $col < $cols["count"]; ++$col) {
        $colattr = $cols[$col];
        /* Span the table head over SESAM's "Multiple Fields": */
        if ($colattr["count"] > 1) {
            echo "  <TH COLSPAN=".$colattr["count"].">".$colattr["name"].
                "(1..".$colattr["count"].")</TH>\n";
            $col += $colattr["count"] - 1;
        } else
            echo "  <TH>" . $colattr["name"] . "</TH>\n";
    }
    echo " </TR>\n";
}

do {
    // Извлечь результат блоками максимум по 100 рядов.
    $ok = sesam_fetch_result ($result, 100);
    for ($row=0; $row < $ok["rows"]; ++$row) {
        echo " <TR>\n";
        for ($col = 0; $col < $ok["cols"]; ++$col) {
            if (isset($ok[$col][$row]))
                echo "  <TD>" . $ok[$col][$row] . "</TD>\n";
            } else {
                echo "  <TD>-empty-</TD>\n";
            }
        }
        echo " </TR>\n";
    }
} 
while ($ok["truncated"]) { // пока ещё могут быть данные
    echo "</TABLE>\n";
}
// освободить result id
sesam_free_result($result);
?>


Назад Оглавление Вперёд
sesam_num_fields Вверхsesam_rollback

Хостинг от uCoz