поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    8.4.3.2. mysql_change_user()

    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));
    }
    
     
    © 1997-2005 PHP Club Team
    Rambler's Top100