PHP mysqli_begin_transaction MySQLi 函数

  • 定义和用法

    mysqli_begin_transaction - 开启一个事务
  • 版本支持

    PHP4 PHP5 PHP7
    不支持 支持 支持
  • 语法

    mysqli_begin_transaction ( mysqli $link [, int $flags = 0 [, string $name ]] )
    
    开始事务。 需要InnoDB引擎(默认情况下启用)。
  • 参数

    参数 必需的 描述
    link mysqli_connect()mysqli_init() 返回的链接标识。
    flags 合法的值:
    • MYSQLI_TRANS_START_READ_ONLY: 以“ START TRANSACTION READ ON”的身份启动事务。 需要MySQL 5.6及更高版本。(排它锁,悲观锁)
    • MYSQLI_TRANS_START_READ_WRITE:  以“ START TRANSACTION READ WRITE”开始事务。 需要MySQL 5.6及更高版本。(共享锁,乐观锁)
    • MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT: 以“START TRANSACTION WITH CONSISTENT SNAPSHOT”来启动事务。
    link 事务的保存点名称。
  • 返回值

    成功时返回 TRUE, 或者在失败时返回 FALSE。
  • 示例

    <?php
    $link = mysqli_connect("127.0.0.1", "my_user", "my_password", "sakila");
    
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    
    mysqli_begin_transaction($link, MYSQLI_TRANS_START_READ_ONLY);
    
    mysqli_query($link, "SELECT first_name, last_name FROM actor LIMIT 1");
    mysqli_commit($link);
    
    mysqli_close($link);
    
  • 相关函数

    mysqli_autocommit() - 打开或关闭本次数据库连接的自动命令提交事务模式
    mysqli_commit() - 提交一个事务
    mysqli_rollback() - 回退当前事务