my_bool mysql_change_user(MYSQL *mysql, const char *user, const char *password, const char *db)
Описание
Изменяет пользователя и устанавливает базу данных, указанную в аргументе
db в качестве текущей по базы данных для соединения, заданного в аргументе
mysql. В последующих запросах эта база данных является текущей по
умолчанию для табличных ссылок, которые не содержат явного указателя базы
данных.
Эта функция была введена в версию MySQL 3.23.3.
Функция mysql_change_user() не выполняется, если подключенный пользователь
не может быть аутентифицирован или если он не имеет разрешения на
использование этой базы данных. В таком случае данный пользователь и база
данных не изменяются.
Параметр db может быть установлен в NULL, если база данных по умолчанию не
нужна.
Начиная с версии 4.0.6 будет всегда производить откат любой начатой транзакции, закрывать все временные таблицы, снимать блокировку со всех заблокированных таблиц и переустанавливать состояние, если произошло новое соединение. Это будет происходить даже в том случае, если имя пользователя не изменится.
Возвращаемые значения
Нуль при успешном выполнении. Ненулевая величина, если возникла ошибка.
Ошибки
Те же, что и для mysql_real_connect().
-
CR_COMMANDS_OUT_OF_SYNCКоманды были выполнены в ненадлежащем порядке.
-
CR_SERVER_GONE_ERRORСервер MySQL неожиданно завершил работу.
-
CR_SERVER_LOSTСоединение с сервером прервалось в процессе данного запроса.
-
CR_UNKNOWN_ERRORПроизошла неизвестная ошибка.
-
ER_UNKNOWN_COM_ERRORСервер MySQL не обеспечивает выполнение этой команды (возможно, старая версия сервера)
-
ER_ACCESS_DENIED_ERRORПользователь или пароль ошибочны.
-
ER_BAD_DB_ERRORДанная база данных не существует.
-
ER_DBACCESS_DENIED_ERRORДанный пользователь не имеет прав доступа к этой базе данных.
-
ER_WRONG_DB_NAMEИмя базы данных было слишком длинным.
Пример
if (mysql_change_user(&mysql, "user", "password", "new_database"))
{
fprintf(stderr, "Failed to change user. Error: %s\n",
mysql_error(&mysql));
}