首页 > 后端开发 > php教程 > 如何在 MySQLi 中开始和结束事务?

如何在 MySQLi 中开始和结束事务?

DDD
发布: 2024-12-06 21:13:12
原创
915 人浏览过

How Do I Start and End Transactions in MySQLi?

在 MySQLi 中开始和结束事务

使用 MySQL 时,了解事务如何工作至关重要。事务是一种对多个查询进行分组并确保它们以原子方式执行的方式,这意味着所有查询要么全部成功,要么全部都不成功。

启动事务

在 MySQLi 中,事务是通过停用来启动的使用 autocommit(FALSE) 语句的自动提交模式。自动提交是MySQL的默认行为,这意味着每个查询都是独立且立即执行的。通过禁用自动提交,您可以启用事务控制,从而允许您对多个查询进行分组并将它们作为一个单元执行。

结束事务

在事务中对所需的查询进行分组后,您必须明确结束它。有两种方式结束事务:

  1. 提交:如果事务中的所有查询都成功执行且没有错误,则可以使用 commit() 方法完成事务。这会将事务期间所做的所有更改永久保存到数据库中。
  2. 回滚:如果事务中的任何查询失败,您可以使用 rollback() 方法取消事务。这将丢弃事务期间所做的所有更改,将数据库恢复到事务开始之前的状态。

示例

考虑以下 PHP 代码片段:

<?php
// Database connection
$mysqli = new mysqli('localhost', 'username', 'password', 'database');

// Start transaction
$mysqli->autocommit(FALSE);

// Queries within the transaction
$mysqli->query('UPDATE `table` SET `column` = 1');
$mysqli->query('UPDATE `table1` SET `column1` = 2');

// Commit or rollback
if ($allQueriesExecutedSuccessfully) {
  $mysqli->commit();
} else {
  $mysqli->rollback();
}
?>
登录后复制

在此示例中,使用 autocommit(FALSE) 禁用自动提交模式,启动事务。事务内执行多个查询。根据执行状态,事务要么提交,要么回滚。

以上是如何在 MySQLi 中开始和结束事务?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板