mysqli_rollback

(PHP 5)

mysqli_rollback

(no version information, might be only in CVS)

mysqli->rollback -- Annule la transaction courante

Description

Style procédural

bool mysqli_rollback ( mysqli link )

Style orienté objet (méthode)

class mysqli {

bool rollback ( void )

}

Annule la transaction courante pour la base de données spécifiée par le paramètre link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

mysqli_commit() et mysqli_autocommit().

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli
= new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Echec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Désactive l'auto-commit */
$mysqli->autocommit(FALSE);

$mysqli->query("CREATE TABLE myCity LIKE City");
$mysqli->query("ALTER TABLE myCity Type=InnoDB");
$mysqli->query("INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* Validation */
$mysqli->commit();

/* Effacement de toutes les lignes */
$mysqli->query("DELETE FROM myCity");

if (
$result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    
$row = $result->fetch_row();
    
printf("%d lignes dans la table myCity.\n", $row[0]);
    
/* Libération des résultats */
    
$result->close();
}

/* Annulation */
$mysqli->rollback();

if (
$result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    
$row = $result->fetch_row();
    
printf("%d lignes dans la table myCity (après annulation).\n", $row[0]);
    
/* Libération des résultats */
    
$result->close();
}

/* Effacement de la table myCity */
$mysqli->query("DROP TABLE myCity");

$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link
= mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Echec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Désactive l'auto-commit */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE myCity LIKE City");
mysqli_query($link, "ALTER TABLE myCity Type=InnoDB");
mysqli_query($link, "INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* Validation */
mysqli_commit($link);

/* Effacement de toutes les lignes */
mysqli_query($link, "DELETE FROM myCity");

if (
$result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    
$row = mysqli_fetch_row($result);
    
printf("%d lignes dans la table myCity.\n", $row[0]);
    
/* Libération des résultats */
    
mysqli_free_result($result);
}

/* Annulation */
mysqli_rollback($link);

if (
$result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    
$row = mysqli_fetch_row($result);
    
printf("%d lignes dans le table myCity (après annulation).\n", $row[0]);
    
/* Libération des résultats */
    
mysqli_free_result($result);
}

/* Effacement de la table myCity */
mysqli_query($link, "DROP TABLE myCity");

mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

0 lignes dans la table myCity.
50 lignes dans la table myCity (après annulation).