1
Я успешно создал компонент в Joomla, где пользователь может обновлять содержимое базы данных. Проблема в том, что у меня есть два запроса для выполнения, если второй запрос не выполняется, изменения, сделанные первым запросом, должны быть отброшены. Я пробовал эти коды, и это не дает мне откат:Как создать транзакции SQL в Joomla 1.5?
$db = JFactory::getDBO();
$db->setQuery("BEGIN");
$db->query();
$db->setQuery($delete_script);
$db->query();
$db->setQuery($update_script);
$db->query();
if($db->getErrorMsg())
{
$db->setQuery("ROLLBACK");
$db->query();
JFactory::getApplication()->enqueueMessage(JText::_($sql_script . 'An error occurred while saving loan types. Please check formatting and try again.'), 'error');
}
else
{
$db->setQuery("COMMIT");
$db->query();
JFactory::getApplication()->enqueueMessage(JText::_('Loan types have been saved successfully!'), 'message');
}
JRequest::setVar('view', 'loantypes');
parent::display();
Как вы создаете транзакцию в Joomla 1.5?
На самом деле '$ update_query' является тем, который производит ошибку, и я хочу отменить изменения, сделанные' $ delete_query', если это произойдет. Это возможно? – dpp
Если ваш запрос на обновление не работает, ваша логика верна. Он должен отменить недавний выполненный запрос. Вам просто нужно использовать «START TRANSACTION» перед «BEGIN». Отдых в порядке. – Harpreet