(PHP 5 >= 5.5.0, PHP 7)
mysqli::begin_transaction -- mysqli_begin_transaction — トランザクションを開始する
オブジェクト指向型 (メソッド):
$flags
[, string $name
]] ) : bool手続き型:
トランザクションを開始します。InnoDB エンジン (デフォルトで有効になっています) が必要です。 MySQL のトランザクションの詳細な動作は、 » http://dev.mysql.com/doc/mysql/en/commit.html を参照ください。
link
手続き型のみ: mysqli_connect() あるいは mysqli_init() が返すリンク ID。
flags
以下のフラグが使えます。
MYSQLI_TRANS_START_READ_ONLY
:
"START TRANSACTION READ ONLY" でトランザクションを開始します。
MySQL 5.6 以上が必要です。
MYSQLI_TRANS_START_READ_WRITE
:
"START TRANSACTION READ WRITE" でトランザクションを開始します。
MySQL 5.6 以上が必要です。
MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT
:
"START TRANSACTION WITH CONSISTENT SNAPSHOT" でトランザクションを開始します。
name
トランザクションのセーブポイント名。
成功した場合に TRUE
を、失敗した場合に FALSE
を返します。
例1 $mysqli->begin_transaction() の例
オブジェクト指向型
<?php
$mysqli = new mysqli("127.0.0.1", "my_user", "my_password", "sakila");
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
$mysqli->begin_transaction(MYSQLI_TRANS_START_READ_ONLY);
$mysqli->query("SELECT first_name, last_name FROM actor");
$mysqli->commit();
$mysqli->close();
?>
手続き型
<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "sakila");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
mysqli_begin_transaction($link, MYSQLI_TRANS_START_READ_ONLY);
mysqli_query($link, "SELECT first_name, last_name FROM actor LIMIT 1");
mysqli_commit($link);
mysqli_close($link);
?>