Руководство по PHP
Пред. |  | След.

# mysqli_change_user

(PHP 5)

mysqli_change_user

(no version information, might be only in CVS)

mysqli->change_user -- Сменить пользователя соединения

## Описание

Процедурный стиль:

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

Объектно-ориентированный стиль (метод):

class mysqli {
bool change_user ( string user, string password, string database )
}

Функция mysqli_change_user() используется для изменения пользователя соединения с базой данных, переданного в параметре `link` и устанавливает в качестве текущей базу данных, определенную параметром `database`.

В качестве параметра `database` может быть передан `NULL`. В результате будет изменен лишь пользователь, а база данных выбрана не будет. В этом случае для выбора базы данных используйте функцию mysqli_select_db().

Для успешной смены пользователя необходимо обеспечить передачу действительных параметров `username` и `password`, а указанный пользователь должен иметь достаточные права для доступа к запрашиваемой базе данных. Если по каким-либо причинам произойдет ошибка авторизации, авторизация текущего пользователя останется в прежнем состоянии.

> Замечание: После этой функции, подключение к базе данных будет вести себя, как полностью новое соединение, вне зависимости от того, была ли операция завершена успешно. Это включает в себя откат всех незавершенных транзакций, закрытие всех временных и разблокирование заблокированных таблиц.

## Возвращаемые значения

Возвращает `TRUE` в случае успешного завершения или `FALSE` в случае возникновения ошибки.

## Смотрите также

mysqli_connect() и mysqli_select_db().

## Примеры

Пример 1. Объектно-ориентированный стиль

`<?php
/* Подключение к базе данных test */
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
/* Проверка подключения */
if (mysqli_connect_errno()) {
printf("Ошибка подключения: %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("База данных по-умолчанию: %s\n", $row[0]);
$result->close();
}
if ($result = $mysqli->query("SELECT @a")) {
$row = $result->fetch_row();
if ($row[0] === NULL) {
printf("Значение переменной a: NULL\n");
}
$result->close();
}
/* Закрытие соединения */
$mysqli->close();
?>`

Пример 2. Процедурный стиль

`<?php
/* Подключение к базе данных */
$link = mysqli_connect("localhost", "my_user", "my_password", "test");
/* Проверка подключения */
if (!$link) {
printf("Ошибка подключения: %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("База данных по-умолчанию: %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("Значение переменной a: NULL\n");
}
mysqli_free_result($result);
}
/* Закрытие соединения */
mysqli_close($link);
?>`

Результат выполнения данного примера:

    База данных по-умолчанию: world
    Значение переменной a: NULL

Пред. | Начало | След.
mysqli_bind_result | Уровень выше | mysqli_character_set_name