查询

mysqli::commit()函数—用法及示例

「 提交当前事务 」


函数名:mysqli::commit()

适用版本:PHP 5 >= 5.5.0, PHP 7, PHP 8

用法:mysqli::commit() 方法用于提交当前事务。在使用MySQL数据库时,事务用于将多个数据库操作作为一个单独的逻辑单元进行处理。如果所有操作都成功,则事务被提交,否则将回滚到事务的起始点。

语法:bool mysqli::commit ([ int $flags [, string $name ]] )

参数:

  • flags(可选):用于指定事务的行为。默认值为MYSQLI_TRANS_COR_AND_CHAIN,表示事务将自动提交,并且会启用事务的链接。可以使用以下常量来设置不同的行为:

    • MYSQLI_TRANS_START_READ_ONLY: 表示事务将以只读方式启动。
    • MYSQLI_TRANS_START_READ_WRITE: 表示事务将以读写方式启动。
    • MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT: 表示事务将以一致性快照方式启动。
  • name(可选):用于指定事务的名称。

返回值:返回一个布尔值,表示事务是否成功提交。如果提交成功,则返回 true,否则返回 false。

示例:

<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 开始事务
$conn->begin_transaction();

// 执行一些数据库操作
$sql1 = "INSERT INTO users (name, email) VALUES ('John', 'john@example.com')";
$sql2 = "UPDATE users SET email='jane@example.com' WHERE id=1";

$result1 = $conn->query($sql1);
$result2 = $conn->query($sql2);

// 如果所有操作都成功,则提交事务
if ($result1 && $result2) {
    $conn->commit();
    echo "事务已提交";
} else {
    $conn->rollback();
    echo "事务已回滚";
}

// 关闭连接
$conn->close();
?>

在上面的示例中,我们使用了mysqli::begin_transaction() 方法开始一个事务,并执行了一些数据库操作。如果所有操作都成功,则使用mysqli::commit() 方法提交事务,否则使用mysqli::rollback() 方法回滚事务。最后,我们关闭了数据库连接。

补充纠错
上一个函数: mysqli::debug()函数
下一个函数: mysqli::close()函数
热门PHP函数
分享链接