mysqli::autocommit
mysqli::character_set_name
MySQLi
PHP Manual

# mysqli::change_user

# mysqli_change_user

(PHP 5)

mysqli::change_user -- mysqli_change_user — 指定されたデータベース接続のユーザ名を変更する

### 説明

オブジェクト指向型

bool mysqli::change_user ( string `$user` , string `$password` , string `$database` )

手続き型

bool mysqli_change_user ( mysqli `$link` , string `$user` , string `$password` , string `$database` )

指定されたデータベース接続のユーザ名を変更し、 現在のデータベースを設定します。

ユーザを正しく変更するには、`username` と `password` 引数を正しく渡す必要があります。 またそのユーザが対象のデータベースに対する適切なパーミッションを 持っている必要があります。どんな理由であれ、認証に失敗するとカレントユーザの 認証が継続されます。

### パラメータ

`link`

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

`user`

  MySQL のユーザ名。

`password`

  MySQL のパスワード。

`database`

  変更するデータベース。

  引数には `NULL` 値を渡すこともできます。 その場合ユーザの変更だけでデータベースの選択はされません。 そのようなケースでデータベースを選択したい場合には mysqli_select_db() 関数を使用してください。

### 返り値

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

### 注意

> 注意: このコマンドを使用すると、常に、カレントのデータベース接続は あたかも完全に新しいデータベース接続であるかのようになります。 これにより、全てのアクティブなトランザクションはロールバックされ、 一時テーブルは全てクローズされ、ロックされたテーブルはすべて 開放されます。

### 例

例1 mysqli::change_user の例

オブジェクト指向型

`<?php
/* データベース test に接続します */
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
/* 接続をチェックします */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* 変数 a を設定します */
$mysqli->query("SET @a:=1");
/* すべてをリセットし、新しいデータベースを選択します */
$mysqli->change_user("my_user", "my_password", "world");
if ($result = $mysqli->query("SELECT DATABASE()")) {
$row = $result->fetch_row();
printf("デフォルトデータベース: %s\n", $row[0]);
$result->close();
}
if ($result = $mysqli->query("SELECT @a")) {
$row = $result->fetch_row();
if ($row[0] === NULL) {
printf("変数 a の値は NULL\n");
}
$result->close();
}
/* 接続を閉じます */
$mysqli->close();
?>`

手続き型

`<?php
/* データベース test に接続します */
$link = mysqli_connect("localhost", "my_user", "my_password", "test");
/* 接続をチェックします */
if (!$link) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* 変数 a を設定します */
mysqli_query($link, "SET @a:=1");
/* すべてをリセットし、新しいデータベースを選択します */
mysqli_change_user($link, "my_user", "my_password", "world");
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
$row = mysqli_fetch_row($result);
printf("デフォルトデータベース: %s\n", $row[0]);
mysqli_free_result($result);
}
if ($result = mysqli_query($link, "SELECT @a")) {
$row = mysqli_fetch_row($result);
if ($row[0] === NULL) {
printf("変数 a の値は NULL\n");
}
mysqli_free_result($result);
}
/* 接続を閉じます */
mysqli_close($link);
?>`

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

    デフォルトデータベース: world
    変数 a の値は NULL

### 参考

- mysqli_connect() - のエイリアス mysqli::__construct
- mysqli_select_db() - クエリを実行するためのデフォルトのデータベースを選択する

mysqli::autocommit
mysqli::character_set_name
MySQLi
PHP Manual