Комментарии

Обработка запросов по команде select
( 0 Голосов )

 

Ниже перечислены стадии обработки запросов по команде SELECT. Вызов метода setQuery () для передачи запроса объекту базы данных. Этот метод служит также для дополнительного ограничения количества строк, возвращаемых из таблицы по запросу.

  • Вызов одного из методов загрузки для обработки запроса и возврата результатов в переменной языка РНР.
  • Проверка любых ошибок в базе данных и последующая их обработка по мере необходимости.

Рассмотрим характерный пример кода для выполнения всех стадий обработки подобных запросов. Соответствующий код приведен ниже.

$db->setQuery($query, $limitstart, $limit); $data = $db->loadObjectList(); if ($db->getErrorNum()) {
$this->setError(JText::_('COM_MYCOMPONENT_ERROR_MSG'));
return  false; } else {
return  $data; }

Как и прежде, в первой строке этого примера кода сформированный запрос передается объекту базы данных. Но в данном случае методу setQuery () в качестве дополнительных аргументов передаются переменные $limitstart и $limit. Значения этих переменных предназначаются для поддержки режима разбиения на страницы, в противном случае — для ограничения набора данных, возвращаемых по запросу, фиксированным количеством строк.

В данном примере с помощью переменной $limitstart базе данных сообщается количество строк, пропускаемых в данных, возвращаемых по запросу, а с помощью переменной $ limit — максимальное количество возвращаемых строк. Так, если значение переменной limit start равно 0, а значение переменной $ limit — 15, то по запросу будет возвращено до 15 первых строк из набора данных. Если же значение переменной limitstart равно 15, а значение переменной $limit — 5, то первые 15 строк пропускаются и возвращаются 5 последующих строк (с 16-й по 20-ю включительно), при условии, что набор данных по запросу содержит такое количество строк из таблицы. Если же значение переменной $ limit оказывается больше, чем количество строк в этом наборе данных, то по запросу не будет возвращено ни одной строки таблицы.

Во второй строке рассматриваемого здесь кода вызывается метод loadObjectList () для возврата результатов обработки запроса в виде массива объектов, представляющих строки таблицы. Различные варианты возврата результатов после обработки запроса по команде SELECT будут рассмотрены несколько ниже.

И в третьей строке кода вызывается метод getErrorNum () для проверки ошибок в базе данных. Если таковые обнаружатся, составляется сообщение об ошибке и возвращается логическое значение false. В противном случае результаты обработки запроса возвращаются в переменной $data. Потребность в проверке ошибок, возникающих в базе данных, и реагировании на них зависит от конкретной ситуации. В одних случаях обработка данных продолжается как обычно, а в других — пользователь уведомляется об ошибке. Когда на платформе Joomla появятся новые функциональные возможности для регистрации ошибок, некритичные ошибки в базе данных будут регистрироваться в системном журнале, чтобы администратор веб-сайта мог просмотреть его и исправить эти ошибки, не создавая неблагоприятного впечатления пользователей от вебсайта.

 


Понравился материал? Пригодилась информация? Плюсани в социалки!


Теги:
 
Похожие новости