mysqli::autocommit()函数用于设置或获取当前连接的自动提交状态。自动提交是指每次执行一个SQL语句后是否自动将结果提交到数据库。
用法:
bool mysqli::autocommit ( bool $mode )
参数:
- $mode:布尔值,表示自动提交的状态。如果为true,则开启自动提交;如果为false,则关闭自动提交。
返回值:
- 如果成功设置自动提交状态,则返回true;如果失败,则返回false。
示例:
// 创建数据库连接
$conn = new mysqli("localhost", "username", "password", "database");
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 关闭自动提交
$conn->autocommit(false);
// 执行一系列的SQL语句
$sql1 = "INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')";
$sql2 = "UPDATE users SET email='johndoe@example.com' WHERE id=1";
if ($conn->query($sql1) === TRUE && $conn->query($sql2) === TRUE) {
// 提交事务
$conn->commit();
echo "事务提交成功";
} else {
// 回滚事务
$conn->rollback();
echo "事务回滚";
}
// 关闭数据库连接
$conn->close();
在上面的示例中,我们首先创建了一个数据库连接。然后,通过调用autocommit(false)
方法关闭了自动提交。接下来,我们执行了两个SQL语句,如果两个SQL语句都执行成功,则通过调用commit()
方法提交事务。如果其中一个SQL语句执行失败,则通过调用rollback()
方法回滚事务。最后,我们关闭了数据库连接。
注意:autocommit()
方法只适用于mysqli对象,并且只对当前连接有效。