Дипломные работы, курсовые проекты на заказ, контрольные работы на заказ

 
Начертательная геометрия Практикум по решению задач Геометрическое черчение Инженерная графика ЕСКД Кратные интегралы Математический анализ Матрицы Пределы Производные Векторная алгебра Интегральное исчисление ТФКП Ядерная физика Электростатика Магнетизм Оптика Информационные технологии
Учебник РНР
НазадВперёд

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