事务是确保数据库一致的一种机制,是多条 SQL 语句组成的一系列的数据库操作,如果所有的 SQL 语句都操作成功,则认为事务成功,事务会被提交,其修改的数据就会生效。如果在事务中的 SQL 语句有一条或者多条操作失败,则事务不会成功,数据库中的数据将会被回滚到事务开始之前的状态,该事务中所有操作都会被取消。
事务功能是企业级数据库的一个重要部分,因为很多业务过程都包括多个步骤,并不是简单的操作一个数据表就能完成的。比如要在人员管理系统中删除一个人员,既要删除人员的基本资料,还要删除所有与该员工有关的信息,如邮件、文章等等,这一系列的数据库操作就构成了一个事务。
注意:在 MySQL 数据库中,只有使用了 Innodb 数据库引擎的数据库或表才支持事务,更多详细的介绍可以查看《MySQL事务》。
PHP 中想要使用事务有两种方式,一是使用 mysqli_begin_transaction()、mysqli_commit()、mysqli_rollback() 等函数来启动、提交或回滚一个事务;再者就是使用 mysqli_autocommit() 函数来关闭 MySQL 事务的自动提交模式。下面我们先来介绍以下这几个函数。
1) begin_transaction()
mysqli_begin_transaction() 函数可以启动一个事务,其语法格式如下:
面向对象风格的写法:
mysqli::begin_transaction([int $flags = 0[, string $name]])
面向过程风格的写法:
mysqli_begin_transaction(mysqli $link[, int $flag