PHP MySQLi 函数

PHP mysqli::change_user() / mysqli_change_user() 函数更改指定数据库连接的用户并设置当前数据库。

为了成功更改用户,必须提供有效的用户名和密码参数,并且该用户必须具有足够的权限来访问所需的数据库。如果由于任何原因授权失败,则将保留当前用户身份验证。

语法

//面向对象风格
public mysqli::change_user(username, password, database)

//面向过程风格
mysqli_change_user(mysql, username, password, database) 

参数

mysql必填。 仅适用于面向过程风格:指定 mysqli_connect() 或 mysqli_init() 返回的 mysqli 对象。
username必填。 指定 MySQL 用户名。
password必填。 指定 MySQL 密码。
database必填。 指定要更改到的数据库。如果需要,可以传递空值,导致仅更改用户而不选择数据库。在这种情况下,可以使用 mysqli_select_db() 函数来选择数据库。

返回值

成功时返回 true,成功时返回 false。

示例:面向对象风格

下面的示例展示了mysqli::change_user()方法的用法。

<?php
//建立与数据库的连接
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) {
  echo "Failed to connect to MySQL: ". $mysqli->connect_error;
  exit();
}

//设置变量a
$mysqli->query("SET @a:=1");

//重置全部,更改用户
//并选择一个新数据库
$mysqli->change_user("myUser", "myPassword", "myDb");

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();
}

//关闭连接
$mysqli->close();
?> 

上述代码的输出将类似于:

Default database: myDb
Value of variable a is NULL 

示例:面向过程风格

下面的示例显示mysqli_change_user() 函数的用法

<?php
//建立与数据库的连接
$mysqli = mysqli_connect("localhost", "user", "password", "database");
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: ". mysqli_connect_error();
  exit();
}

//设置变量a
mysqli_query($mysqli, "SET @a:=1");

//重置全部,更改用户
//并选择一个新数据库
mysqli_change_user($mysqli, "myUser", "myPassword", "myDb");

if ($result = mysqli_query($mysqli, "SELECT DATABASE()")) {
  $row = mysqli_fetch_row($result);
  printf("Default database: %s\n", $row[0]);
  mysqli_free_result($result);
}

if ($result = mysqli_query($mysqli, "SELECT @a")) {
  $row = mysqli_fetch_row($result);
  if ($row[0] === NULL) {
    printf("Value of variable a is NULL\n");
  }
  mysqli_free_result($result);
}

//关闭连接
mysqli_close($mysqli);
?> 

上述代码的输出将类似于:

Default database: myDb
Value of variable a is NULL