(PHP 5)
mysqli->change_user — Сменить пользователя соединения
Процедурный стиль:
Объектно-ориентированный стиль (метод):
Функция mysqli_change_user() используется для изменения пользователя соединения с базой данных, переданного в параметре link и устанавливает в качестве текущей базу данных, определенную параметром database .
В качестве параметра database может быть передан NULL. В результате будет изменен лишь пользователь, а база данных выбрана не будет. В этом случае для выбора базы данных используйте функцию mysqli_select_db().
Для успешной смены пользователя необходимо обеспечить передачу действительных параметров username и password , а указанный пользователь должен иметь достаточные права для доступа к запрашиваемой базе данных. Если по каким-либо причинам произойдет ошибка авторизации, авторизация текущего пользователя останется в прежнем состоянии.
Note: После этой функции, подключение к базе данных будет вести себя, как полностью новое соединение, вне зависимости от того, была ли операция завершена успешно. Это включает в себя откат всех незавершенных транзакций, закрытие всех временных и разблокирование заблокированных таблиц.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
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