(PECL maxdb >= 1.0)
maxdb_rollback -- maxdb::rollback — Rolls back current transaction
Prozeduraler Stil
Objektorientierter Stil
Rollbacks the current transaction for the database specified by the link parameter.
Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.
Beispiel #1 Object oriented style
<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");
/* check connection */
if (maxdb_connect_errno()) {
printf("Connect failed: %s\n", maxdb_connect_error());
exit();
}
/* disable autocommit */
$maxdb->autocommit(FALSE);
$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");
/* commit insert */
$maxdb->commit();
/* delete all rows */
$maxdb->query("DELETE FROM temp.mycity");
if ($result = $maxdb->query("SELECT COUNT(*) FROM temp.mycity")) {
$row = $result->fetch_row();
printf("%d rows in table mycity.\n", $row[0]);
/* Free result */
$result->close();
}
/* Rollback */
$maxdb->rollback();
if ($result = $maxdb->query("SELECT COUNT(*) FROM temp.mycity")) {
$row = $result->fetch_row();
printf("%d rows in table mycity (after rollback).\n", $row[0]);
/* Free result */
$result->close();
}
/* Drop table myCity */
$maxdb->query("DROP TABLE temp.mycity");
$maxdb->close();
?>
Beispiel #2 Procedural style
<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");
/* check connection */
if (maxdb_connect_errno()) {
printf("Connect failed: %s\n", maxdb_connect_error());
exit();
}
/* disable autocommit */
maxdb_autocommit($link, FALSE);
maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");
/* commit insert */
maxdb_commit($link);
/* delete all rows */
maxdb_query($link, "DELETE FROM temp.mycity");
if ($result = maxdb_query($link, "SELECT COUNT(*) FROM temp.mycity")) {
$row = maxdb_fetch_row($result);
printf("%d rows in table mycity.\n", $row[0]);
/* Free result */
maxdb_free_result($result);
}
/* Rollback */
maxdb_rollback($link);
if ($result = maxdb_query($link, "SELECT COUNT(*) FROM temp.mycity")) {
$row = maxdb_fetch_row($result);
printf("%d rows in table mycity (after rollback).\n", $row[0]);
/* Free result */
maxdb_free_result($result);
}
/* Drop table myCity */
maxdb_query($link, "DROP TABLE temp.mycity");
maxdb_close($link);
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
0 rows in table mycity. 25 rows in table mycity (after rollback).