Сегодня расскажу о том, как в CMS Joomla работать с базой данных. Всё в подробностях смотрим в этой статье!
Приветствую вас, наши дорогие читатели. Сегодня я столкнулся с тем, что CMS этого блога (а мы решили использовать Joomla 3.0, если кто-то ещё этого не знал) практически не имеет туториалов по работе с базой данных. Мне, как программисту, захотелось более глубоко копнуть в эту сторону, и я решил написать небольшую статью про работу с базой данных в Joomla.
Когда вы впервые разворачиваете на сайте Joomla, то у вас автоматически создаётся класс database (исходный код находится в /includes/database.php), который полностью взаимодействует с БД сайта - выборки, работа с данными и прочее. Этот класс очень тесно связан с MySQL, он очень просто в использовании, в чём вы сможете удостоверить дальше.
В данной CMS присутствует функционал, который даёт доступ к таблицам БД, в соответствии с префиксами таблиц. Т.е. если ваш хостер даёт возможность создания только одной базы данных, а вы вдруг захотели сделать 2 базы, то с помощью префиксов вы с лёгкостью сможете осуществить данную махинацию. Сам префикс создаётся ещё при установке Joomla, вид у него примерно такой pref_НазваниеТаблички. Записывается он глобально в файл конфигурации configuration.php.
При работы с БД вы можете подставлять каждый раз к названию выбираемой таблицы префикс, но это ужасно неудобно. Для упрощения жизни я бы рекомендовал использовать макроподстановку - встроенный механизм Joomla.
Привожу примеры, которые используются в нашем блоге:
1) Загружаем всех пользователей с сайта
Код простецкий. Мы получаем какую-то выборку и в цикле выводим названия всех пользователей, полученных в запросе.
2) Удаляем данные из таблицы
Удаляем из таблицы table запись с id'шником, равным нулю. Всё очень просто.
3) Вставка данных в таблицу
Здесь аналогично всё просто. Мы вставляем одну запись в таблицу mytable. Люди, знакомые с SQL поймут эти запросы без проблем.
В Joomla работают все запросы из MySQL. Для этого советую поискать документацию в интернете, MySQL хорошо документирована и имеет огромное русскоязычное сообщество.
Бывает так, что запрос возвращает NULL. Иногда это связано с ошибкой синтаксиса запроса, или какими-либо другими проблемами (подключение к базе, отсутствие таблицы и т.д.). Для "дебага запроса" существует отличная функция echo $database->stderr();
Я описал совершенно поверхностно работу с базой данных, но даже этой информации должно хватить для программирования на Joomla.
Всем приятного дня и до встречи!
Комментарии (1)