mysqli::change_user
mysqli_change_user
(PHP 5, PHP 7)
mysqli::change_user -- mysqli_change_user — 指定されたデータベース接続のユーザー名を変更する
説明
オブジェクト指向型
public mysqli::change_user
( string $user
, string $password
, string $database
) : bool
手続き型
mysqli_change_user
( mysqli $link
, string $user
, string $password
, string $database
) : bool
指定されたデータベース接続のユーザー名を変更し、 現在のデータベースを設定します。
ユーザーを正しく変更するには、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