mysqli::change_user - Позволяет сменить пользователя подключенного к базе данных
Вернуться к: mysqli
mysqli::change_user
mysqli_change_user
(PHP 5, PHP 7)
mysqli::change_user -- mysqli_change_user — Позволяет сменить пользователя подключенного к базе данных
Описание
Объектно-ориентированный стиль
$user
, string $password
, string $database
)Процедурный стиль
Меняет пользователя, от имени которого выполнено подключение к базе данных, и устанавливает текущую базу данных
Для успешной смены пользователя необходимы корректные username
и password
, а так же наличие достаточных прав для работы с базой.
Если смена пользователя закончится ошибкой, сохранится текущая авторизация пользователя,
до вызова функции.
Список параметров
-
link
-
Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()
-
user
-
Имя пользователя для доступа к MySQL
-
password
-
Пароль для доступа к MySQL
-
database
-
Имя базы данных
Если требуется сменить пользователя, без выбора базы данных, следует указывать
NULL
. Для выбора базы данных, необходимо использовать функцию mysqli_select_db().
Возвращаемые значения
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
Примечания
Замечание:
В результате вызова функции текущее соединение с базой данных начинает вести себя так, как будто было создано новое соединение. Независимо от результата операции, вызов функции приводит к откату всех активных транзакций, закрытию временных таблиц и разблокировки всех заблокированных таблиц.
Примеры
Пример #1 Пример использования mysqli::change_user()
Объектно-ориентированный стиль
<?php
/* создаем подключение к базе данных test */
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
/* проверяем соединение */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* устанавливаем переменную a */
$mysqli->query("SET @a:=1");
/* все сбрасываем и выбираем новую базу данных */
$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();
}
/* закрываем соединение */
$mysqli->close();
?>
Процедурный стиль
<?php
/* создаем подключение к базе данных test */
$link = mysqli_connect("localhost", "my_user", "my_password", "test");
/* проверяем соединение */
if (!$link) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* устанавливаем переменную a */
mysqli_query($link, "SET @a:=1");
/* все сбрасываем и выбираем новую базу данных */
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);
}
/* закрываем соединение */
mysqli_close($link);
?>
Результат выполнения данных примеров:
Default database: world Value of variable a is NULL
Смотрите также
- mysqli_connect() - Псевдоним mysqli::__construct
- mysqli_select_db() - Устанавливает базу данных для выполняемых запросов
Вернуться к: mysqli