データベース更新の自動コミットをオンまたはオフにする

# mysqli::autocommit

# mysqli_autocommit

(PHP 5, PHP 7)

mysqli::autocommit -- mysqli_autocommit — データベース更新の自動コミットをオンまたはオフにする

### 説明

オブジェクト指向型

mysqli::autocommit ( bool `$mode` ) : bool

手続き型

mysqli_autocommit ( mysqli `$link` , bool `$mode` ) : bool

指定されたデータベース接続リソースに対するクエリの 自動コミットモードをオンまたはオフにします。

現在の自動コミットモードを知るには、SQL コマンド SELECT @@autocommit を使用します。

### パラメータ

`link`

  手続き型のみ: mysqli_connect() あるいは mysqli_init() が返すリンク ID。

`mode`

  自動コミットを有効にするかどうか。

### 返り値

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

### 注意

> 注意:

> この関数は、トランザクションに 対応していないテーブル型（MyISAM あるいは ISAM など）では 動作しません。

### 例

例1 mysqli::autocommit() の例

オブジェクト指向型

`<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* 自動コミットを on にします */
$mysqli->autocommit(TRUE);
if ($result = $mysqli->query("SELECT @@autocommit")) {
$row = $result->fetch_row();
printf("Autocommit is %s\n", $row[0]);
$result->free();
}
/* 接続を閉じます */
$mysqli->close();
?>`

手続き型

`<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
if (!$link) {
printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
exit();
}
/* 自動コミットを on にします */
mysqli_autocommit($link, TRUE);
if ($result = mysqli_query($link, "SELECT @@autocommit")) {
$row = mysqli_fetch_row($result);
printf("Autocommit is %s\n", $row[0]);
mysqli_free_result($result);
}
/* 接続を閉じます */
mysqli_close($link);
?>`

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

    Autocommit is 1

### 参考

- mysqli_begin_transaction() - トランザクションを開始する
- mysqli_commit() - 現在のトランザクションをコミットする
- mysqli_rollback() - 現在のトランザクションをロールバックする