学科分类
目录
PHP基础

PDO事务操作

事务处理在数据库开发过程中有着非常重要的作用,它可以保证在同一个事务中的操作具有同步性。为此,PDO类对MySQL所支持的事务操作进行封装,使用PDO类也可以进行事务的操作,具体操作方法如表1所示。

表1 PDO事务处理

方法名 说明
PDO::beginTransaction() 启动一个事务
PDO::exec() 执行事务
PDO:: rollback() 回滚一个事务
PDO:: commit() 提交一个事务

下面通过代码演示PDO事务处理的使用。

创建C:\web\apache2.4\htdocs\pdo05.php文件,具体代码如下。

 1  <?php
 2  $dsn = 'mysql:host=localhost;port=3306;dbname=mydb;charset=utf8';
 3  $pdo = new PDO($dsn, 'root', '123456');
 4  // 开启事务
 5  $pdo->beginTransaction();
 6  // 执行插入操作
 7  $pdo->exec("INSERT INTO `student` VALUES(NULL,'Andy',2)");
 8  // 提交事务
 9  $res = $pdo->commit();
 10 // 执行失败,事务回滚
 11 if(!$res){
 12   $pdo->rollback();
 13 }

上述代码演示了PDO的事务处理,第5行用于开启事务,第9行用于提交事务,第12行用于执行失败时回滚事务。

在实际开发中,当一个完整的事务操作其中的某一个步骤出现问题时,想要回滚至该步骤操作前的状态,并不需要事务内的所有操作都被撤销。此时,就需要设置回滚点,具体设置方式如下所示。

 1  // 设置回滚点
 2  $pdo->exec('savepoint sp1');
 3  // 回滚
 4  $pdo->exec('rollback to sp1')

上述代码中,通过使用exec()方法执行SQL语句来完成回滚点的设置和回滚操作,同样,exec()方法也可以执行其他指令来完成事务操作。

点击此处
隐藏目录