Блог разработчиков

Все разделы | CMS Joomla 2.5 | Общее | PHP | Javascript + jQuery

MySQL запросы в Joomla!

09 августа 2014

Рассмотрим самые простые и в то же время часто используемые запросы, такие как SELECT, UPDATE, INSERT INTO.

Запрос SELECT

В примере ниже выполним подключение к базе данных и выполним простой запрос.

$db = JFactory::getDBO();

$db->setQuery("SELECT * FROM #__example_table WHERE id = 999999");

Чтобы сделать запрос более гибким в системе управления предусмотрена замена префикса, который обычно присутствует у всех таблиц Joomla после установки. Замена происходит на "#__" что расценивается как префикс таблицы записанный в файле конфигурации. Система замены префикса на данный символ является еще и защитным ключем выполнения запроса. Конечно, вместо "#__" можно записать префикс таблицы, а если у таблицы его вовсе нет то и вообще его убрать, данное не будет ошибкой, но в целях безопасности и удобства лучше производить замену префикса.

 

Затем сделаем запрос. Например, нам нужно вывести контактную информацию нашего предприятия, она хранится в таблице jos_com_contact. Нужно обратить внимание что приставка jos - это префикс нашей таблицы, который прописан в файле конфигурации и он может быть иным.

$sql = "SELECT * FROM `".$dbprefix."com_contact` WHERE `id`=1";
$items = mysql_query($sql, $db);
$item = mysql_fetch_object($items);

В данном случае в переменной $item содержится массив данных контакта с id=1 из таблицы com_contact. Для вывода информации этого контакта необходимо использовать ячейки таблицы, к которой было обращение. Например, выведем на экран имя контакта.

echo $item->name;

При вызове данной функции будет выведено на экран имя контакта с id=1. Аналогичным способом можно вывести всю информацию содержащуюся в таблице com_contact опредененного контакта.

Запрос UPDATE

UPDATE запрос необходим для выполнения изменения данных в таблице базы данных MySQL веб-сайта. Прежде чем выполнять данный запрос необходимо сделать подключение к базе данных веб-сайта, он описан выше. Обратите внимание если было выполнено подключение к базе данных ранее подключаться по-новой уже не нужно. Например, сделаем изменение имя контакта с id=1.

$sql = "UPDATE `".$dbprefix."com_contact` SET `name`='Новое имя контакта' WHERE `id`=1";
mysql_query($sql, $db);

После выполнения данного запроса в таблице com_contact у контакта с id=1 изменится имя на Новое имя контакта.

Запрос INSERT INTO

INSERT INTO позволяет производить вставку новой строки в определенную таблицу.