PHP mysqli commit() 函数

定义和用法

commit() / mysqli_commit() 函数用于提交指定数据库连接的当前事务。

提示:还可以查看 autocommit() 函数,它用于开启或关闭数据库修改的自动提交功能;以及 rollback() 函数,它用于回滚当前事务。

实例

例子 1 - 面向对象风格

关闭自动提交,执行一些查询,然后提交这些查询:

<?php
$mysqli = new mysqli("localhost","my_user","my_password","my_db");

if ($mysqli -> connect_errno) {
  echo "Failed to connect to MySQL: " . $mysqli -> connect_error;
  exit();
}

// 关闭自动提交
$mysqli -> autocommit(FALSE);

// 插入一些值
$mysqli -> query("INSERT INTO Persons (FirstName,LastName,Age)
VALUES ('Peter','Griffin',35)");
$mysqli -> query("INSERT INTO Persons (FirstName,LastName,Age)
VALUES ('Glenn','Quagmire',33)");

// 提交事务
if (!$mysqli -> commit()) {
  echo "Commit transaction failed";
  exit();
}

$mysqli -> close();
?>

例子 2 - 过程式风格

关闭自动提交,执行一些查询,然后提交这些查询:

<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");

if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  exit;
}

// 关闭自动提交
mysqli_autocommit($con,FALSE);

// 插入一些值
mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age)
VALUES ('Peter','Griffin',35)");
mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age)
VALUES ('Glenn','Quagmire',33)");

// 提交事务
if (!mysqli_commit($con)) {
  echo "Commit transaction failed";
  exit();
}

// 关闭连接
mysqli_close($con);
?>

语法

面向对象风格:

$mysqli -> commit(flags, name)

过程式风格:

mysqli_commit(connection, flags, name)
参数 描述
connection 必需。指定要使用的 MySQL 连接
flags

可选。一个常量:

  • MYSQLI_TRANS_COR_AND_CHAIN - 附加 "AND CHAIN"
  • MYSQLI_TRANS_COR_AND_NO_CHAIN - 附加 "AND NO CHAIN"
  • MYSQLI_TRANS_COR_RELEASE - 附加 "RELEASE"
  • MYSQLI_TRANS_COR_NO_RELEASE - 附加 "NO RELEASE"
name 可选。如果指定了此参数,则执行 COMMIT/name/。

技术细节

返回值: 成功时返回 TRUE,失败时返回 FALSE
PHP 版本: 5+
PHP 更新日志: PHP 5.5:添加了 flagsname 参数