mysqli_rollback,

(PHP 5)

mysqli_rollback, 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 .

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

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

Exemples

Exemple 1696. Style orienté objet

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

/* Vérification de la connexion */
if ( mysqli_connect_errno ()) {
    
printf ( "Échec 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 ]);
    
/* Free result */
    
$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 1697. Style procédural

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

/* Vérification de la connexion */
if ( mysqli_connect_errno ()) {
    
printf ( "Échec 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).

  

Voir aussi

mysqli_commit()
mysqli_autocommit()