mysqli::change_user()
(PHP 5, PHP 7)
Changes the user of the specified database connection
说明
面向对象风格
mysqli::change_user(string $user,string $password,string $database): bool
过程化风格
mysqli_change_user(mysqli$link,string $user,string $password,string $database): bool
Changes the user of the specified database connection and sets the current database.
In order to successfully change users a valid$usernameand$passwordparameters must be provided and that user must have sufficient permissions to access the desired database. If for any reason authorization fails, the current user authentication will remain.
参数
- $link
仅以过程化样式:由mysqli_connect()或mysqli_init()返回的链接标识。
- $user
The MySQL user name.
- $password
The MySQL password.
- $database
The database to change to.
If desired, the
NULLvalue may be passed resulting in only changing the user and not selecting a database. To select a database in this case use the mysqli_select_db() function.
返回值
成功时返回TRUE,或者在失败时返回FALSE。
注释
Note:Using this command will always cause the current database connection to behave as if was a completely new database connection, regardless of if the operation was completed successfully. This reset includes performing a rollback on any active transactions, closing all temporary tables, and unlocking all locked tables.
范例
Example #1 mysqli::change_user() example
面向对象风格
<?php
/* connect database test */
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* Set Variable a */
$mysqli->query("SET @a:=1");
/* reset all and select a new database */
$mysqli->change_user("my_user", "my_password", "world");
if ($result = $mysqli->query("SELECT DATABASE()")) {
$row = $result->fetch_row();
printf("Default database: %s\n", $row[0]);
$result->close();
}
if ($result = $mysqli->query("SELECT @a")) {
$row = $result->fetch_row();
if ($row[0] === NULL) {
printf("Value of variable a is NULL\n");
}
$result->close();
}
/* close connection */
$mysqli->close();
?>
过程化风格
<?php
/* connect database test */
$link = mysqli_connect("localhost", "my_user", "my_password", "test");
/* check connection */
if (!$link) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* Set Variable a */
mysqli_query($link, "SET @a:=1");
/* reset all and select a new database */
mysqli_change_user($link, "my_user", "my_password", "world");
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
$row = mysqli_fetch_row($result);
printf("Default database: %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("Value of variable a is NULL\n");
}
mysqli_free_result($result);
}
/* close connection */
mysqli_close($link);
?>
以上例程会输出:
Default database: world Value of variable a is NULL
参见
mysqli_connect()别名 mysqli::__construct- mysqli_select_db() 选择用于数据库查询的默认数据库
