5.4.4 mysql_change_user()
bool
mysql_change_user(MYSQL *mysql,
const char *user,
const char *password,
const char *db)
Описание
Изменяет пользователя и устанавливает базу данных, указанную в db, в качестве текущей для подключения, указанного в mysql. В последующих запросах эта база данных будет по умолчанию для ссылок на таблицы, не содержащих явного указания базы данных.
mysql_change_user() завершается неудачно, если подключённый пользователь не может быть аутентифицирован или не имеет прав доступа к базе данных. В этом случае пользователь и база данных не изменяются.
Передайте параметр db со значением NULL, если вы не хотите устанавливать базу данных по умолчанию.
Эта функция сбрасывает состояние сессии, как если бы был выполнен новый подключение и повторная аутентификация. (См. Раздел 3.6.8, «Автоматическое переподключение».) Она всегда прерывает любые активные транзакции, закрывает и удаляет все временные таблицы и разблокирует все заблокированные таблицы. Она сбрасывает переменные системы сессии до значений соответствующих глобальных переменных системы, освобождает подготовленные запросы, закрывает переменные и освобождает блокировки, полученные с помощью . Очищает любые текущие атрибуты запроса, определённые в результате вызова mysql_bind_param(). Эти действия выполняются даже если пользователь не изменился.
Для более лёгкого сброса состояния подключения без изменения пользователя используйте 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.