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