如何使用Joomla Jtable进行数据库事务


How to do a database transaction with Joomla Jtable

我正在将数据插入Joomla 中的表

foreach($resultarray as $data1)
{
  $table = JTable::getInstance('Upload', 'UsersTable', array());
  $table->bind($data1);
  $table->store();
}

我想做一个交易,这样就会有START transaction,COMMIT

怎么做?

JoomlaJoomla3.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);
}

我从这里选择了这个例子