Joomla Joomla 3.x通過JDatabaseDriver的transactionStart,transactionCommit和transactionRollback引入了SQL事務(在支持的地方)。這取代了Joomla Joomla 2.5中引入的queryBatch方法。
$db = JFactory::getDbo();
try
{
$db->transactionStart();
$query = $db->getQuery(true);
$values = array($db->quote('TEST_CONSTANT'), $db->quote('Custom'), $db->quote('/path/to/translation.ini'));
$query->insert($db->quoteName('#__overrider'));
$query->columns($db->quoteName(array('constant', 'string', 'file')));
$query->values(implode(',',$values));
$db->setQuery($query);
$result = $db->execute();
$db->transactionCommit();
}
catch (Exception $e)
{
// catch any database errors.
$db->transactionRollback();
JErrorPage::render($e);
}
我選擇從here
你提示本例中爲SQL的Joomla交易是正確的。但是,這在問題中提到的桌面級別上是否也支持? – 2016-01-07 08:22:27
似乎無法與JTable :: getInstance() – Jimmy 2017-07-01 22:03:20
(當我說「似乎不工作」,我的意思是$ db-> transactionRollback();不會做任何事情;它不會回滾,也不會拋出一個例外。) – Jimmy 2017-07-02 14:01:44