PHP マニュアル
前のページ |  | 次のページ

# mysqli_rollback

(PHP 5)

mysqli_rollback

(no version information, might be only in CVS)

mysqli->rollback -- 現在のトランザクションをロールバックする

## 説明

bool mysqli_rollback ( mysqli link )
class mysqli {
bool rollback ( void )
}

link で指定したデータベースの 現在のトランザクションをロールバックします。

## 返り値

成功した場合に `TRUE` を、失敗した場合に `FALSE` を返します。

## 参考

mysqli_commit() そして mysqli_autocommit()

## 例

例 1. オブジェクト指向型
`<?php $mysqli = new mysqli("localhost", "my_user", "my_password", "world"); /* 接続状況をチェックします */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } /* 自動コミットを無効にします */ $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"); /* insert をコミットします */ $mysqli->commit(); /* すべての行を削除します */ $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]); /* 結果を開放します */ $result->close(); } /* ロールバックします */ $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]); /* 結果を開放します */ $result->close(); } /* myCity テーブルを削除します */ $mysqli->query("DROP TABLE myCity"); $mysqli->close(); ?>`

例 2. 手続き型
`<?php $link = mysqli_connect("localhost", "my_user", "my_password", "world"); /* 接続状況をチェックします */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } /* 自動コミットを無効にします */ 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"); /* insert をコミットします */ mysqli_commit($link); /* すべての行を削除します */ 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]); /* 結果を開放します */ mysqli_free_result($result); } /* ロールバックします */ 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]); /* 結果を開放します */ mysqli_free_result($result); } /* myCity テーブルを削除します */ mysqli_query($link, "DROP TABLE myCity"); mysqli_close($link); ?>`

上の例の出力は以下となります。

    0 rows in table myCity.
    50 rows in table myCity (after rollback).

前のページ | ホーム | 次のページ
mysqli_report | 上に戻る | mysqli_rpl_parse_enabled