mysqli::begin_transaction
(mysqli_begin_transaction)启动一个事务
mysqli::begin_transaction
PHP 5 >= 5.5.0,PHP 7,PHP 8
该函数用于显式地启动一个数据库事务。默认情况下,MySQL 使用自动提交模式,该函数会禁用自动提交并开始一个新的事务。此函数是面向对象风格的 mysqli 扩展的一部分。
public mysqli::begin_transaction(int $flags = 0, ?string $name = null): bool
成功时返回 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 开始一个事务,并尝试插入两个用户记录。如果两个插入语句都成功,则提交事务;如果其中任何一个失败,则捕获异常并回滚事务,从而保证数据一致性。