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(); ?>
输出结果
事务已启动...... 表已创建...... 插入记录...... 事务保存......