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);

Смотрите также:
Комментарии (8) Добавить комментарий
  • Сергей
    Сергей
    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.

  • g
    g
    16 Июня 2020, 11:55
     ↑  0  ↓     ответ

    What's up, yup this post is truly pleasant and I have learned lot

    of things from it regarding blogging. thanks.

  • g
    g
    17 Июня 2020, 12:55
     ↑  0  ↓     ответ

    I think everything composed was very logical. But, what about this?

    suppose you typed a catchier post title?

    I mean, I don't want to tell you how to run your blog, but suppose you added a

    title that makes people want more? I mean Выполнение запросов к базе данных / Работа с базой данных .:.

    Документация Joomla! CMS is a little boring.

    You ought to look at Yahoo's front page and see how they write post headlines

    to grab viewers to open the links. You might add a

    video or a pic or two to get readers excited about

    everything've written. In my opinion, it could bring your posts a little livelier.

  • g
    g
    17 Июня 2020, 16:53
     ↑  0  ↓     ответ

    naturally like your web site however you need to check the spelling on several of your posts.

    A number of them are rife with spelling issues and I find it very

    bothersome to tell the truth then again I'll surely

    come back again.

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




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

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