Forum und email

mysqli_change_user

mysqli->change_user

(PHP 5)

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

Описание

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

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

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

mysqli
bool change_user ( string $user , string $password , string $database )

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

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

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

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

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

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

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

mysqli_connect() и mysqli_select_db().

Примеры

Example#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();
?>

Example#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