У меня есть много статей, которые мне нужно скопировать на сайт joomla + k2, я не хочу переходить на бэкэнд и добавлять их по одному, поэтому я сейчас пытаясь непосредственно обновить базу данных, частично для обучения.Joomla3: ручное обновление таблицы в базе данных
Я создал элемент k2 и продублировал его до тех пор, пока у меня не будет достаточно поддельных элементов, поэтому мне просто нужно обновить title
и introtext
и игнорировать другие поля, и я подготовил статьи в JSON.
Теперь мой первый вопрос: где самое лучшее место для размещения этого файла .PHP, который будет управлять данными базы данных? Он должен иметь подключение к базе данных готово и не загружать страницу. В настоящее время я использую копию файла index.php
под ROOT, прокомментировав $app->execute();
, чтобы он фактически не загружал страницу. Хотя соединение с базой данных является хорошим (я успешно «выбираю» данные из таблицы), он чувствует себя очень неудобно, а также я не могу использовать плагины разработчиков, такие как «j! Dump».
Во-вторых, и что более важно, мой код не работает: скопировать код из this documentation и сделать как небольшие изменения, как я могу, но он не работает, то $result
является true
, но таблица не обновлено вообще. Имея очень мало знаний о кодировании joomla и базе данных, я не могу самостоятельно его отлаживать.
define('_JEXEC', 1);
if (file_exists(__DIR__ . '/defines.php'))
{
include_once __DIR__ . '/defines.php';
}
if (!defined('_JDEFINES'))
{
define('JPATH_BASE', __DIR__);
require_once JPATH_BASE . '/includes/defines.php';
}
require_once JPATH_BASE . '/includes/framework.php';
// Set profiler start time and memory usage and mark afterLoad in the profiler.
JDEBUG ? $_PROFILER->setStart($startTime, $startMem)->mark('afterLoad') : null;
// Instantiate the application.
$app = JFactory::getApplication('site');
//mycode
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$fields = array(
$db->quoteName('title') . ' = ' . $db->quote('asdfasdf')
);
$conditions = array(
$db->quoteName('id') . ' = 2'
);
$query->update($db->quoteName('#__k2_items'))->set($fields)->where($conditions);
$result = $db->execute();
Существует никакой ошибки и $db->execute()
возвращает истину, пожалуйста, научите меня, когда это происходит, как отлаживать?
Написать действительный запрос SQL в PHPMyAdmin затем попробовать его в Joomla , – mokiSRB