PHP mysqli: функция отката ()
функция mysqli_rollback / mysqli :: откат
Функция mysqli_rollback / mysqli :: rollback - откатывает текущую транзакцию.
Синтаксис:
Объектно-ориентированный стиль
bool mysqli :: rollback ([int $ flags [, строка $ name]])
Процедурный стиль
bool mysqli_rollback (mysqli $ link [, int $ flags [, string $ name]])
Параметр:
название | Описание | Обязательный / Дополнительно | |
---|---|---|---|
ссылка на сайт | Идентификатор ссылки, возвращаемый mysqli_connect () или mysqli_init () | Требуется только для процедурного стиля и необязательно для объектно-ориентированного стиля | |
флаги | Битовая маска констант MYSQLI_TRANS_COR_ *. | Необязательный | |
название | Если указано, выполняется ROLLBACK / * name * /. | Необязательный |
Использование: Процедурный стиль
mysqli_rollback (соединение);
Параметр:
название | Описание | Обязательный / Дополнительно |
---|---|---|
соединение | Определяет соединение MySQL для использования | необходимые |
Возвращаемое значение:
Возвращает TRUE в случае успеха или FALSE в случае неудачи.
Версия: PHP 5, PHP 7
Пример объектно-ориентированного стиля:
<?php
$mysqli = new mysqli("localhost", "user1", "datasoft123", "hr");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* disable autocommit */
$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");
/* commit insert */
$mysqli->commit();
/* delete all rows */
$mysqli->query("DELETE FROM myCity");
if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
$row = $result->fetch_row();
printf("%d rows in table myCity.\n", $row[0]);
/* Free result */
$result->close();
}
/* Rollback */
$mysqli->rollback();
if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
$row = $result->fetch_row();
printf("%d rows in table myCity (after rollback).\n", $row[0]);
/* Free result */
$result->close();
}
/* Drop table myCity */
$mysqli->query("DROP TABLE myCity");
$mysqli->close();
?>
Пример процедурного стиля:
<?php
$link = mysqli_connect("localhost", "user1", "datasoft123", "hr");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* disable autocommit */
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");
/* commit insert */
mysqli_commit($link);
/* delete all rows */
mysqli_query($link, "DELETE FROM myCity");
if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
$row = mysqli_fetch_row($result);
printf("%d rows in table myCity.\n", $row[0]);
/* Free result */
mysqli_free_result($result);
}
/* Rollback */
mysqli_rollback($link);
if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
$row = mysqli_fetch_row($result);
printf("%d rows in table myCity (after rollback).\n", $row[0]);
/* Free result */
mysqli_free_result($result);
}
/* Drop table myCity */
mysqli_query($link, "DROP TABLE myCity");
mysqli_close($link);
?>
Выход:
0 строк в таблице myCity. 50 строк в таблице myCity (после отката).
Смотрите также
Предыдущая: release_savepoint
Далее: select_db
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code