Web Development
JБлог

Примеры обращения к базе данных в Joomla

Оцените материал
(1 Голосовать)

Введение

Для того чтобы связаться с базой данных в Joomla, нужно получить новый экземпляр класса JDatabaseQuery, мы используем метод getQuery JDatabaseDriver.

$db = JFactory::getDbo();
$query = $db->getQuery(true);

Или короткой записью

$query = $this->getDbo()->getQuery( true )

Выборка из базы данных

Пример №1

Выбор определенной записи.

$id = '122';
	
	$query = $this->getDbo()->getQuery( true )
		->select( '*' )
		->from( '#__products' )
		->where( 'id="' . $id . '"')
		->where( 'published="1"');
	
	$product = $this->getDbo()->setQuery( $query )->loadObject();

Пример №2

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

	
	$IDs = array('1', '2', '3', '4');
	
	$query = $this->getDbo()->getQuery( true )
			->select( '*' )
			->from( '#__products' )
			->where( 'id IN (' . implode(',', $IDs) . ')' )
			->where( 'published="1"' );
			
	$products = $this->getDbo()->setQuery( $query )->loadObjectList();

Вставка в базу данных

Пример №1

$db = JFactory::getDbo();
$query = $db->getQuery(true);

$columns = array('user_id', 'profile_key', 'profile_value', 'ordering');

$values = array(1001, $db->quote('custom.message'), $db->quote('Inserting a record using insert()'), 1);

$query
    ->insert($db->quoteName('#__profiles'))
    ->columns($db->quoteName($columns))
    ->values(implode(',', $values));

$db->setQuery($query)->execute();

Обновление записи в базе данных

Пример №1

$db = JFactory::getDbo();
$query = $db->getQuery(true);

$fields = array(
    $db->quoteName('profile_value') . ' = ' . $db->quote('Updating custom message for user 1001.'),
    $db->quoteName('ordering') . ' = 2'
);

$conditions = array(
    $db->quoteName('user_id') . ' = 42', 
    $db->quoteName('profile_key') . ' = ' . $db->quote('custom.message')
);

$query->update($db->quoteName('#__profiles'))->set($fields)->where($conditions);

$db->setQuery($query)->execute();

Удаление из базы данных

Пример №1

$db = JFactory::getDbo();
$query = $db->getQuery(true);

$conditions = array(
    $db->quoteName('user_id') . ' = 888', 
    $db->quoteName('profile_key') . ' = ' . $db->quote('custom.%')
);

$query->delete($db->quoteName('#__profiles'));
$query->where($conditions);

$db->setQuery($query)->execute();
edit Последнее изменение Понедельник, 15 апреля 2019 03:47
Другие материалы в этой категории: « Анимация иконок SVG + CSS (Success, Error)
Авторизуйтесь, чтобы получить возможность оставлять комментарии

AM DOX (Joomla 3.x)

MPC (Music Player Component) (Joomla 3.x)

AMGallery (Joomla 3.x)

AMHTML5AUDIO PRO - Audio player

Online Ocenka (Joomla 2.5)

AM Quick Sale (Joomla 3, 4)

AM Lang

AMHTML5AUDIO Lite - Audio player

AMPopup

AM Unite Gallery Plugin

XMap для MPC

AM Parallax Slider (beta)

AMQS Currency Switch