函数名: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() 方法回滚事务。最后,我们关闭了数据库连接。