PHP mysqli_begin_transaction() 函数用法及示例

PHP MySQLi 参考手册

mysqli_begin_transaction()函数启动事务

定义和用法

mysqli_begin_transaction()用来启动一个新的事务。

语法

mysqli_begin_transaction($con, [$flags, $name]);

参数

序号参数及说明
1

con(必需)

这是一个表示与MySQL Server的连接的对象。

2

flags(可选)

一个常量,可以是下列值之一:

  • MYSQLI_TRANS_START_READ_ONLY

  • MYSQLI_TRANS_START_READ_WRITE

  • MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT

3

name(可选)

这是表示事务保存点名称的字符串值。

返回值

PHP mysqli_begin_transaction()函数返回一个布尔值,如果操作成功,则为true,否则为false

PHP版本

此函数最初是在PHP版本5中引入的,并且在所有更高版本中均可用。

在线示例

以下示例演示了mysqli_begin_transaction()函数的用法(面向过程程序风格)-

<?php
   //建立连接
   $con = mysqli_connect("localhost", "root", "password", "mydb");

   //开始事务
   mysqli_begin_transaction($con, MYSQLI_TRANS_START_READ_ONLY);
   print("事务已启动......\n");

   //创建表
   mysqli_query($con, "CREATE TABLE Test(Name VARCHAR(255), AGE INT)");
   print("表已创建......\n");

   //插入值
   mysqli_query($con, "INSERT INTO Test values('Raju', 25),('Rahman', 30),('Sarmista', 27)");
   print("插入记录......\n");

   //提交事务
   mysqli_commit($con);
   print("事务保存......\n");

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

输出结果

事务已启动......
表已创建......
插入记录......
事务保存......

在线示例

面向对象风格方法的语法为  $con->begin_transaction()。以下是面向对象风格中此函数的示例;

//建立连接
$con = new mysqli("localhost", "root", "password", "mydb");

//开始事务
$con->begin_transaction($con, MYSQLI_TRANS_START_READ_ONLY);
print("事务已启动......\n");

//创建表
$con->query("CREATE TABLE Test(Name VARCHAR(255), AGE INT)");
print("表已创建......\n");

//插入值
$con->query("insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27)");
 print("插入记录......\n");

//提交事务
$con->commit();
print("事务保存......\n");

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

输出结果

事务已启动......
表已创建......
插入记录......
事务保存......

PHP MySQLi 参考手册