# mysqli_change_user

# mysqli->change_user()

(PHP 5)

mysqli->change_user() — Changes the user of the specified database connection

### Description

Procedural style:

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

Object oriented style (method):

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

Changes the user of the specified database connection and sets the current database.

In order to successfully change users a valid `username` and `password` parameters 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.

### Parameters

`link`

  Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

`user`

  The MySQL user name.

`password`

  The MySQL password.

`database`

  The database to change to.

  If desired, the `NULL` value 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.

### Return Values

Returns `TRUE` on success or `FALSE` on failure.

### Notes

> 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.

### Examples

Example#1 Object oriented style

`<?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();
?>`

Example#2 Procedural style

`<?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);
?>`

The above example will output:

    Default database: world
    Value of variable a is NULL

### See Also

- mysqli_connect()
- mysqli_select_db()