Drupal 7 开发内部培训资料, 分头诗人

drupal支持事务操作吗?

赞成!
0
否决!

我需要批量往数据库里面插入 (db_insert)数据。想使用事务做,效果好一些。否则中断插入数据就不完整了,不知道有没有人用过?

2 个回答

赞成!
0
否决!

不知道是不是说Transaction, 查了下,drupal 是支持的,你可以看下面的example(原文在此):

<?php
function my_transaction_function() {
  // The transaction opens here.
  $transaction = db_transaction();

  try {
    $id = db_insert('example')
      ->fields(array(
        'field1' => 'mystring',
        'field2' => 5,
      ))
      ->execute();

    my_other_function($id);

    return $id;
  }
  catch (Exception $e) {
    $transaction->rollback();
    watchdog_exception('my_type', $e);
  }

  // $transaction goes out of scope here.  Unless the it was rolled back, it
  // gets automatically commited here.
}

function my_other_function($id) {
  // The transaction is still open here.

  if ($id % 2 == 0) {
    db_update('example')
      ->condition('id', $id)
      ->fields(array('field2' => 10))
      ->execute();
  }
}
?>
赞成!
0
否决!

是的,非常感谢!