PHP mysql事务回滚操作实例

作者:袖梨 2022-06-24

MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持的!

 代码如下 复制代码
public function insertUser ($userArray){
  foreach ($userArray as $key => $value) {
   @$field  .= "$key,";
   @$content .= "'$value',";
  } 
  $field  = ereg_replace(',$', '', $field);
  $content = ereg_replace(',$', '', $content);
 
  $db = db_connect();  //连接数据库
 
  $db->autocommit(FALSE); //设置为非自动提交——事务处理
 
  $sql1  = "INSERT INTO t_user (".$field.") VALUES (".$content.")";
  $result1 = $db->query($sql1);
 
  $sql2  = "INSERT INTO t_userpost (f_username) VALUES ('".$userArray['f_username']."')";
  $result2 = $db->query($sql2);
 
  if ($result1 && $result2) {
   $db->commit();  //全部成功,提交执行结果
   echo '提交';
  } else {
   $db->rollback(); //有任何错误发生,回滚并取消执行结果
   echo '回滚';
  }
  $db->close();
}

相关文章

精彩推荐