Documentation Home
Connectors and APIs Manual
Download this Manual

Connectors and APIs Manual  /  ...  /  mysqli::begin_transaction, mysqli_begin_transaction

7.3.9.3 mysqli::begin_transaction, mysqli_begin_transaction

Copyright 1997-2019 the PHP Documentation Group.

  • mysqli::begin_transaction

    mysqli_begin_transaction

    Starts a transaction

Description

Object oriented style (method):

public bool mysqli::begin_transaction(int flags= =0,
                                      string name);

Procedural style:

bool mysqli_begin_transaction(mysqli link,
                              int flags= =0,
                              string name);

Begins a transaction. Requires the InnoDB engine (it is enabled by default). For additional details about how MySQL transactions work, see http://dev.mysql.com/doc/mysql/en/commit.html.

Parameters

link

Procedural style only: A link identifier returned by mysqli_connect or mysqli_init

flags

Valid flags are:

  • MYSQLI_TRANS_START_READ_ONLY: Start the transaction as "START TRANSACTION READ ONLY". Requires MySQL 5.6 and above.

  • MYSQLI_TRANS_START_READ_WRITE: Start the transaction as "START TRANSACTION READ WRITE". Requires MySQL 5.6 and above.

  • MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT: Start the transaction as "START TRANSACTION WITH CONSISTENT SNAPSHOT".

name

Savepoint name for the transaction.

Return Values

Returns TRUE on success or FALSE on failure.

Examples

Example 7.42 $mysqli->begin_transaction example

Object oriented style

<?php
$mysqli = new mysqli("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(MYSQLI_TRANS_START_READ_ONLY);
$mysqli->query("SELECT first_name, last_name FROM actor");
$mysqli->commit();
$mysqli->close();
?>

Procedural style

<?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);
?>

See Also

mysqli_autocommit
mysqli_commit
mysqli_rollback