Search the MySQL manual:
MySQL Manual

Buy this Reference Manual in softcover from Barnes & Noble!

/ / Up / Table of Contents

8.4.3.171 mysql_real_connect()

MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned int client_flag)

8.4.3.172 Описание

Функция mysql_real_connect() пытается установить соединение с сервером баз данных MySQL, работающим на хосте host. До успешного завершения функции mysql_real_connect() нельзя выполнять никакие другие функции интерфейса, за исключением mysql_get_client_info().

Параметры этой функции указываются следующим образом:

8.4.3.173 Возвращаемые значения

Дескриптор соединения MYSQL*, если соединение было успешным, NULL если соединение было неудачным. Для успешного соединения возвращаемая величина та же, что и величина первого параметра.

8.4.3.174 Ошибки

CR_CONN_HOST_ERROR
Не удалось соединиться с сервером MySQL.
CR_CONNECTION_ERROR
Не удалось соединиться с локальным сервером MySQL.
CR_IPSOCK_ERROR
Не удалось создать IP-сокет.
CR_OUT_OF_MEMORY
Недостаток памяти.
CR_SOCKET_CREATE_ERROR
Не удалось создать Unix сокет.
CR_UNKNOWN_HOST
Не удалось найти IP-адрес для данного имени хоста.
CR_VERSION_ERROR
Несоответствие протокола, что явилось результатом попытки соединения с сервером с клиентской библиотекой, использующей иную версию протокола. Это может произойти при использовании очень старой клиентской библиотеки для подключения к новому серверу, при запуске которого не была установлена опция --old-protocol.
CR_NAMEDPIPEOPEN_ERROR
Не удалось создать именованный канал на Windows.
CR_NAMEDPIPEWAIT_ERROR
Не удалось дождаться именованного канала на Windows.
CR_NAMEDPIPESETSTATE_ERROR
Не удалось получить обработчик канала на Windows.
CR_SERVER_LOST
Если connect_timeout > 0 и требовалось больше, чем connect_timeout секунд для соединения с сервером или если сервер прекратил работу во время выполнения init-command.

8.4.3.175 Пример

MYSQL mysql;

mysql_init(&mysql);
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"your_prog_name");
if
(!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
{
        fprintf(stderr, "Failed to connect to database: Error: %s\n",
        mysql_error(&mysql));
}

Используя функцию mysql_options(), библиотека MySQL будет читать секции [client] и your_prog_name в конфигурационном файле `my.cnf', что будет гарантировать нормальную работу данной программы, даже если MySQL будет установлен нестандартным образом.

Следует заметить, что во время соединения функция mysql_real_connect() устанавливает флаг reconnect (часть данной структуры MYSQL) в значение, равное 1. Этот флаг показывает, что в случае, если запрос не может быть выполнен из-за потери соединения, то следует попытаться восстановить соединение прежде, чем отказаться от него.

User Comments

Add your own comment.

Top / / / Up / Table of Contents