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