mysqli_begin_transaction()函数启动事务
mysqli_begin_transaction()用来启动一个新的事务。
mysqli_begin_transaction($con, [$flags, $name]);
序号 | 参数及说明 |
---|---|
1 | con(必需) 这是一个表示与MySQL Server的连接的对象。 |
2 | flags(可选) 一个常量,可以是下列值之一:
|
3 | name(可选) 这是表示事务保存点名称的字符串值。 |
PHP mysqli_begin_transaction()函数返回一个布尔值,如果操作成功,则为true,否则为false。
此函数最初是在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();
?>
输出结果
事务已启动...... 表已创建...... 插入记录...... 事务保存......