my_bool mysql_change_user(MYSQL *mysql, const char *user, const char *password,
const char *db)
20.4.4.1 Description
Changes the user and causes the database specified by db
to
become the default (current) database on the connection specified by
mysql
. In subsequent queries, this database is the default for
table references that do not include an explicit database specifier.
This function was introduced in MySQL 3.23.3
mysql_cohange_user()
fails unless the connected user can be authenticated
or if he doesn't have permission to use the database. In this case the user and
database is not changed
20.4.4.2 Return values
Zero for success. Non-zero if an error occurred.
20.4.4.3 Errors
The same that you can get from mysql_real_connect()
CR_COMMANDS_OUT_OF_SYNC
-
Commands were executed in an improper order.
CR_SERVER_GONE_ERROR
-
The MySQL server has gone away.
CR_SERVER_LOST
-
The connection to the server was lost during the query.
CR_UNKNOWN_ERROR
-
An unknown error occurred.
ER_UNKNOWN_COM_ERROR
-
The MySQL server doesn't implement this command (probably an old server)
ER_ACCESS_DENIED_ERROR
-
The user or password was wrong.
ER_BAD_DB_ERROR
-
The database didn't exists.
ER_DBACCESS_DENIED_ERROR
-
The user did not have access rights to the database.
ER_WRONG_NOM_BASE_DE_DONNEES
-
The database name was too long.
20.4.4.4 Example
if (mysql_change_user(&mysql, "user", "password", "new_database"))
{
fprintf(stderr, "Failed to change user. Error: %s\n",
mysql_error(&mysql));
}