JDatabase – прямые запросы в базу данных Joomla

JDatabase – прямые запросы в базу данных Joomla

Здравствуйте дорогие читатели! Сегодня поговорим о прямых запросов запросов в базу данных Joomla с помощью JDatabase.

Давайте рассмотрим всё по порядку.

Безопасная вставка данных

Главное при работе с базой данных Joomla это безопасность, от случайных данных нужно предохранятся. Таким средством является метод getEscaped();

$_REQUEST["text"] = "Всевозоможные апострофы - (') нужно обязательно экранировать   ";
$mytext = JRequest::getVar('text','');
$db =& JFactory::getDBO();
$mytext = $db->getEscaped($mytext);
echo $mytext;

Отладка текущего запроса

Все мы люди ошибаемся. От ошибок не застрахован никто, поэтому полезно посмотреть что возвращает запрос. Для этого не обязательно через phpmyadmin.

$db =& JFactory::getDBO();
$zapros = "SELECT * FROM #__content LIMIT 8";
$db->setQuery($zapros);
$db->explain();

Проверка соединения с базой данных

Как можно узнать что сервер mysql не упал и соединение с ним работает?

$db =& JFactory::getDBO();
if ($db->connected()) {
echo "Нет соединения с сервером баз данных";  
jexit();
} else {
echo "Все отлично с базой данных";
}

Установка используемой базы данных

Полезно, когда нужно получить данные из базы данных, отличной от текущей. Однако нужно заметить, чтобы этот метод был выполнен успешно, нужно, чтобы пользователь mysql установленный в настройках самой Joomla имел право работать с обеими базами данных.

$db =& JFactory::getDBO();
$database_name = "db2";
if ($db->select($database_name)) {
//Тут делаем запросы к другой базе данных
}

Получить количество обработанных строк в последнем запросе

Следующий запрос показывает сколько строк было задействовано в ходе выполнения запроса.

//1. Создадим экземпляр класса
$db=&JFactory::getDBO();
//2. Создадим запрос к базе данных, в данном случае мы выбираем статьи
$sql = 'SELECT id,title FROM jos_content ORDER BY id ASC  ';
//3. Установим этот запрос в экземпляр класса работы с базами данных
$db->setQuery($sql);
//4.  Выполним запрос
$db->query();
//5. Посмотрим  сколько было задействовано строчекк
echo $db->getAffectedRows ();

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

В основном следующая конструкция используется при установке или удалении данных о компоненте в базе данных

//1. Создадим экземпляр класса
$db =& JFactory::getDBO();
$sql = "";
//2. Создадим запросы к базе данных
for ($i=0;$i<10;$i++){
$sql .=" INSERT INTO `jos_content` (`title`, `introtext`) VALUES  ('Тест$i', 'test$i') ; ";
}
//3. Установим этот запрос в экземпляр класса работы с базами данных
$db->setQuery($sql);
//4.  Для того чтобы выполнить эти запросы будем использовать следующую конструкцию
$db->queryBatch();

Добавить комментарий


Защитный код
Обновить

MOD_BREADCRUMBS_HERE Главная страницаJoomlaJDatabase – прямые запросы в базу данных Joomla
?>