当前位置:首页 > PHP

php实现事务控制

2026-02-27 22:41:56PHP

PHP 实现事务控制的方法

在 PHP 中,事务控制通常通过数据库扩展(如 PDO 或 MySQLi)实现。以下是两种常见的方法:

使用 PDO 实现事务

PDO(PHP Data Objects)提供了一种统一的方式处理数据库事务。以下是实现步骤:

$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$pdo->beginTransaction();

try {
    $stmt1 = $pdo->prepare("UPDATE accounts SET balance = balance - :amount WHERE id = :id");
    $stmt1->execute([':amount' => 100, ':id' => 1]);

    $stmt2 = $pdo->prepare("UPDATE accounts SET balance = balance + :amount WHERE id = :id");
    $stmt2->execute([':amount' => 100, ':id' => 2]);

    $pdo->commit();
    echo "Transaction completed successfully";
} catch (Exception $e) {
    $pdo->rollBack();
    echo "Transaction failed: " . $e->getMessage();
}

使用 MySQLi 实现事务

MySQLi 扩展也支持事务控制,适用于 MySQL 数据库:

php实现事务控制

$mysqli = new mysqli('localhost', 'username', 'password', 'test');

$mysqli->autocommit(FALSE);

try {
    $mysqli->query("UPDATE accounts SET balance = balance - 100 WHERE id = 1");
    $mysqli->query("UPDATE accounts SET balance = balance + 100 WHERE id = 2");

    $mysqli->commit();
    echo "Transaction completed successfully";
} catch (Exception $e) {
    $mysqli->rollback();
    echo "Transaction failed: " . $e->getMessage();
}

事务控制的注意事项

确保数据库引擎支持事务(如 InnoDB)。MyISAM 引擎不支持事务。

事务应尽量简短,避免长时间占用数据库连接。

php实现事务控制

在事务中处理异常时,务必调用 rollBack()rollback() 方法。

可以通过 setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION) 设置 PDO 错误模式为异常处理。

嵌套事务的处理

某些数据库支持嵌套事务,但 MySQL 不支持真正的嵌套事务。可以通过保存点(SAVEPOINT)模拟:

$pdo->beginTransaction();
$pdo->exec("SAVEPOINT point1");

try {
    // 执行一些操作
    $pdo->exec("RELEASE SAVEPOINT point1");
} catch (Exception $e) {
    $pdo->exec("ROLLBACK TO SAVEPOINT point1");
}

标签: 事务php
分享给朋友:

相关文章

php购物车实现

php购物车实现

PHP购物车实现方法 使用PHP实现购物车功能可以通过多种方式完成,以下是几种常见的实现方法: Session存储购物车数据 利用PHP的$_SESSION超全局变量存储购物车数据是最简单的方法。用…

php实现异步

php实现异步

PHP 实现异步的方法 PHP 本身是同步执行的脚本语言,但可以通过以下方法模拟异步操作或实现异步效果: 使用多进程(pcntl_fork) 通过 pcntl_fork 创建子进程实现异步,适用于…

php怎么实现登录功能

php怎么实现登录功能

数据库准备 创建用户表存储登录信息,通常包括用户名、密码(需加密)等字段。示例SQL: CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY…

php 实现跳转

php 实现跳转

PHP 实现页面跳转的方法 在PHP中,实现页面跳转可以通过多种方式完成,以下是几种常用的方法: 使用header函数 header函数是PHP中最常用的跳转方法,通过发送HTTP头部信息实现跳转。…

php实现过程

php实现过程

PHP 实现过程 PHP 是一种广泛使用的服务器端脚本语言,特别适合 Web 开发。以下是 PHP 实现过程的关键步骤和注意事项。 安装与配置 下载并安装 PHP,可以从官方 PHP 网站获取最新版…

php session 实现购物车

php session 实现购物车

PHP Session 实现购物车的方法 初始化 Session 在 PHP 脚本的最开始调用 session_start() 函数,确保会话已启用。这通常在页面的顶部完成。 session_sta…