当前位置: 首页> 函数类别大全> mysqli::begin_transaction

mysqli::begin_transaction

(mysqli_begin_transaction)启动一个事务
名称:mysqli::begin_transaction
分类:MySQLi
所属语言:php
一句话介绍:(mysqli_begin_transaction)启动一个事务

mysqli::begin_transaction

函数名

mysqli::begin_transaction

适用 PHP 版本

PHP 5 >= 5.5.0,PHP 7,PHP 8

函数说明

该函数用于显式地启动一个数据库事务。默认情况下,MySQL 使用自动提交模式,该函数会禁用自动提交并开始一个新的事务。此函数是面向对象风格的 mysqli 扩展的一部分。

函数语法

public mysqli::begin_transaction(int $flags = 0, ?string $name = null): bool

参数

  • $flags(可选):事务的行为标志。可以使用以下常量:
    • MYSQLI_TRANS_START_READ_ONLY:只读事务
    • MYSQLI_TRANS_START_READ_WRITE:可读写事务
    • MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT:一致性快照
  • $name(可选):事务保存点的名称(用于命名事务)。

返回值

成功时返回 true,失败时返回 false

示例

<?php
$mysqli = new mysqli("localhost", "username", "password", "database");

if ($mysqli->connect_errno) {
    die("连接失败: " . $mysqli->connect_error);
}

$mysqli->begin_transaction();

try {
    $mysqli->query("INSERT INTO users (name, email) VALUES ('Alice', '[email protected]')");
    $mysqli->query("INSERT INTO users (name, email) VALUES ('Bob', '[email protected]')");

    $mysqli->commit();
    echo "事务已提交。";
} catch (Exception $e) {
    $mysqli->rollback();
    echo "事务回滚: " . $e->getMessage();
}

$mysqli->close();
?>

示例代码的说明

该示例使用 mysqli::begin_transaction 开始一个事务,并尝试插入两个用户记录。如果两个插入语句都成功,则提交事务;如果其中任何一个失败,则捕获异常并回滚事务,从而保证数据一致性。

同类函数