RSS   Twitter   Copiny   Copiny
Нашел ошибку? 

Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!

Выполнение запросов к базе данных

Из всего разнообразия методов класса JDatabase самым основным является query(). Он выполняет запросы напрямую в базу данных, без дополнительных вмешательств со стороны Joomla.

Обычная функция PHP mysql_query обычно вернет ссылку на ресурс, который потом с помощью нескольких действий можно преобразовать в нормальный ответ в виде ассоциативного массива. Метод query(), в отличие от функций PHP, вернет булево значение, по которому можно понять выполнился запрос или нет. Обычно его используют в следующих типах запросов:

  • DELETE
  • INSERT
  • RENAME
  • REPLACE
  • UPDATE

Хотя никто не запрещает писать там что-нибудь и посложнее. Разберем выше сказанное на практике. Попробуем к примеру выполнить запрос, который удаляет из таблицы «#__mycomponent_foobars» все записи, где ordering больше 4.



// берем ссылку на объект базы данных
$db =& JFactory::getDBO();
 
// подготовка имен
$tableName  = $db->nameQuote('#__mycomponent_foobars');
$columnName = $db->nameQuote('ordering');
 
// строим SQL
$sql = "DELETE FROM $tableName WHERE $columnName > 4 ";
 
// предварительно устанавливаем текст запроса 
$db->setQuery($sql);
 
// выполняем запрос и в зависимости от ответа выполняем соответствующее действие
if ($db->query()) {
    // успешно выполнился
} else {
    // неудача (например, ошибка в синтаксисе SQL)
}

Так, как в случае неудачи мы получим FALSE, то после проверки запроса можно сделать вывод ошибок, например в log-файл.

Очень полезным может оказаться метод JDatabase::getAffectedRows(), который вернет количество строк, к которым был применен последний запрос. Используется следующим образом:


// в случае успеха
$affectRowCount = $db->getAffectedRows();
 
// выводим сообщение
echo JText::sprintf('DELETED %u RECORDS', $affectRowCount);

Смотрите также:
Комментарии (5) Добавить комментарий
  • Сергей
    Сергей
    03 Ноября 2012, 19:33
     ↑  0  ↓     ответ

    т.е получается что по ссылке запустится модуль, а модуль снова вернет нас к ссылке?

  • tinyurl.com
    tinyurl.com
    23 Ноября 2019, 22:18
     ↑  0  ↓     ответ

    You are so cool! I do not suppose I have read anything

    like this before. So nice to find someone with a few genuine thoughts on this subject.

    Seriously.. thanks for starting this up. This site is one thing that's needed on the web, someone with a little originality!

  • tinyurl.com
    tinyurl.com
    24 Ноября 2019, 19:12
     ↑  0  ↓     ответ

    Hello i am kavin, its my first occasion to commenting

    anyplace, when i read this paragraph i thought i could also create comment due to

    this sensible piece of writing.

  • coconut oil a
    coconut oil a
    25 Ноября 2019, 15:16
     ↑  0  ↓     ответ

    My partner and I stumbled over here from a different

    page and thought I might as well check things out.

    I like what I see so now i'm following you. Look forward

    to checking out your web page for a second time.

  • plenty of fish dating site
    plenty of fish dating site
    27 Ноября 2019, 03:31
     ↑  0  ↓     ответ

    Quality articles or reviews is the main to

    invite the viewers to visit the site, that's what this website is providing.

Оставить комментарий




* обязательно для заполнения

1 введенный почтовый адрес используется только для обратной связи при ответах в комментариях и сервиса gravatar.com
.