Форум русской поддержки Joomla!® CMS
05.12.2016, 02:28:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

обновление данных бд

 (Прочитано 295 раз)
0 Пользователей и 1 Гость смотрят эту тему.
jmaf
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« : 30.10.2015, 18:25:41 »

нужно обновить значение extension_id в таблице #__updates
есть значение $extid и выбрать нужно к примеру по по полю 'element'

пробовал так

Код:
// Получаем объект коннектора базы данных
$db = JFactory::getDbo();
 
// Получаем объект запроса
$query = $db->getQuery(true);
 
// Поля для обновления
$fields = array(
    $db->quoteName('extension_id'). ' = ' . $db->quote((int)$extid)
);
 
// Условия обновления
$conditions = array(
    $db->quoteName('type'). ' = module',
    $db->quoteName('element'). ' = ' . $db->quote('mod_my_module')
);
 
$query->update($db->quoteName('#__updates'))
    ->set($fields)
    ->where($conditions);
 
// Устанавливаем и выполняем запрос
$db->setQuery($query)
    ->execute();
Записан
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Offline Offline

Пол: Мужской
Сообщений: 2762



« Ответ #1 : 30.10.2015, 19:42:05 »

а пробовали сделать echo $query; посмотреть что у вас сформировалось? Выполняется ли запрос в phpMyAdmin (или другой среде для работы с базой)?
Записан
jmaf
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #2 : 30.10.2015, 19:48:48 »

вообще приведенный код выдвет следующую ошибку

ошибка 1054

Цитировать
Unknown column 'module' in 'where clause' SQL=UPDATE `pufzd_updates` SET `extension_id` = '10135' WHERE `type` = module AND `element` = 'mod_my_module'
Записан
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Offline Offline

Пол: Мужской
Сообщений: 2762



« Ответ #3 : 30.10.2015, 20:12:39 »

$conditions = array(
    $db->quoteName('type'). ' = ' . $db->quote('module'),
    $db->quoteName('element'). ' = ' . $db->quote('mod_my_module')
);
 
Записан
jmaf
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #4 : 30.10.2015, 20:40:41 »

echo выдает такой запрос
Код:
UPDATE `#__updates` SET `extension_id` = '10135' WHERE `type` = 'module' AND `element` = 'mod_my_module'
а при попытке выполнить запрос  через phpMyAdmin он отвечает
Цитировать
#1146 - Table 'u228910610_jm.#__updates' doesn't exist
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Online Online

Пол: Мужской
Сообщений: 1538


« Ответ #5 : 30.10.2015, 21:01:51 »

Потому что phpMyAdmin не подменяет '#_'  на префикс, это делает фреймворк Joomla.
Записан
jmaf
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #6 : 30.10.2015, 22:56:05 »

спасибо
$conditions = array(
    $db->quoteName('type'). ' = ' . $db->quote('module'),
    $db->quoteName('element'). ' = ' . $db->quote('mod_my_module')
);
 
спасибо большое за помощь.

Еще небольшой момент, насколько разумно выполнять такой код в основном файле модуля? проблема в том, что данная процедура позволяет успешно производить обновление модуля, а без нее апдейтер не видит его. Где целесообразно выполнять данный код?
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet