(PHP 5 >= 5.5.0, PHP 7)
mysqli::begin_transaction -- mysqli_begin_transaction — Démarre une transaction
Style orienté objet (méthode):
$flags
= 0
[, string $name
]] ) : boolStyle procédural:
Commence une transaction. Nécessite le moteur InnoDB (il est actif par défaut). Pour plus de détails sur le fonctionnement des transactions MySQL, voir » http://dev.mysql.com/doc/mysql/en/commit.html.
link
Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()
flags
Les drapeaux valides sont :
MYSQLI_TRANS_START_READ_ONLY
:
Commence la transaction comme "START TRANSACTION READ ONLY".
Nécessite MySQL 5.6 ou supérieur.
MYSQLI_TRANS_START_READ_WRITE
:
Commence la transaction comme "START TRANSACTION READ WRITE".
Nécessite MySQL 5.6 et supérieur.
MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT
:
Commence la transaction comme "START TRANSACTION WITH CONSISTENT SNAPSHOT".
name
Nom du point de sauvegarde pour la transaction.
Cette fonction retourne TRUE
en cas de succès ou FALSE
si une erreur survient.
Exemple #1 Exemple avec $mysqli->begin_transaction()
Style orienté objet
<?php
$mysqli = new mysqli("127.0.0.1", "my_user", "my_password", "sakila");
if ($mysqli->connect_errno) {
printf("Echec de la connexion : %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();
?>
Style procédural
<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "sakila");
if (mysqli_connect_errno()) {
printf("Echec de la connexion : %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);
?>