• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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 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.

    返回值

    成功时返回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() 选择用于数据库查询的默认数据库