5.4.3 mysql_change_user()
my_bool
mysql_change_user(MYSQL *mysql,
const char *user,
const char *password,
const char *db)
Описание
Изменяет пользователя и устанавливает базу данных, указанную параметром db, в качестве текущей для подключения, указанного параметром mysql. В последующих запросах эта база данных будет являться по умолчанию для ссылок на таблицы, не содержащих явного указания базы данных.
mysql_change_user() возвращает ошибку, если подключенный пользователь не может быть аутентифицирован или не имеет разрешения на использование базы данных. В этом случае пользователь и база данных не изменяются.
Передайте параметр db со значением NULL, если вы не хотите устанавливать базу данных по умолчанию.
Эта функция сбрасывает состояние сессии так, как если бы вы выполнили новое подключение и повторную аутентификацию. (См. Раздел 3.6.6, «Автоматическое переподключение».) Она всегда выполняет откат любых активных транзакций, закрывает и удаляет все временные таблицы, и разблокирует все заблокированные таблицы. Она сбрасывает системные переменные сессии до значений соответствующих глобальных системных переменных, освобождает подготовленные запросы, закрывает переменные сессии и освобождает блокировки, полученные с помощью . Эти действия происходят даже если пользователь не изменился.
Для сброса состояния подключения менее радикальным способом без изменения пользователя используйте mysql_reset_connection().
Значения возврата
Ноль в случае успеха. Неноль, если произошла ошибка.
Ошибки
Те же, что и при использовании mysql_real_connect(), плюс:
-
Команды были выполнены в неправильном порядке.
-
Сервер MySQL недоступен.
-
Подключение к серверу было потеряно во время запроса.
-
Произошла неизвестная ошибка.
-
Сервер MySQL не поддерживает данную команду (вероятно, старая версия сервера).
-
Неправильный пользователь или пароль.
-
База данных не существует.
-
У пользователя нет прав доступа к базе данных.
-
Имя базы данных слишком длинное.
Пример
if (mysql_change_user(&mysql, "user", "password", "new_database"))
{
fprintf(stderr, "Failed to change user. Error: %s\n",
mysql_error(&mysql));
}
© 2025 Oracle
Licensed under the GPLv2 License.