Spec-Zone .ru
спецификации, руководства, описания, API

21.8.7.53. 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 long client_flag)

Описание

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

Параметры определяются следующим образом:

Если Ваша программа использует CALL операторы, чтобы выполнить хранимые процедуры, CLIENT_MULTI_RESULTS флаг должен быть включен. Это то, потому что каждый CALL возвращает результат указать на состояние вызова, в дополнение к любым наборам результатов, которые могли бы быть возвращены операторами, выполняемыми в пределах процедуры. Поскольку CALL может возвратить многократные результаты, обработать их использующий цикл, который вызывает mysql_next_result() определить, есть ли больше результатов.

CLIENT_MULTI_RESULTS может быть включен, когда Вы вызываете mysql_real_connect(), любой явно, передавая CLIENT_MULTI_RESULTS флаг непосредственно, или неявно передавая CLIENT_MULTI_STATEMENTS (который также включает CLIENT_MULTI_RESULTS). В MySQL 5.7, CLIENT_MULTI_RESULTS включается по умолчанию.

Если Вы включаете CLIENT_MULTI_STATEMENTS или CLIENT_MULTI_RESULTS, обработайте результат для каждого звонка mysql_query() или mysql_real_query() при использовании цикла, который вызывает mysql_next_result() определить, есть ли больше результатов. Для примера см. Раздел 21.8.17, "Поддержка API C Многократного Выполнения Оператора".

Для некоторых параметров возможно взять значение от файла опции, а не от явного значения в mysql_real_connect() вызвать. Чтобы сделать это, вызвать mysql_options() с MYSQL_READ_DEFAULT_FILE или MYSQL_READ_DEFAULT_GROUP опция перед вызовом mysql_real_connect(). Затем, в mysql_real_connect() вызовите, определите значение "без значений" для каждого параметра, который будет считан из файла опции:

Если никакое значение не находится в файле опции для параметра, его значение по умолчанию используется как обозначено в описаниях, данных ранее в этом разделе.

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

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

Ошибки

Пример

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 в версиях API, более старого чем 5.0.3, или 0 в более новых версиях. Значение 1 поскольку этот флаг указывает на это, если оператор не может быть выполнен из-за потерянного соединения, чтобы попытаться повторно соединиться с сервером перед отказом. Можно использовать MYSQL_OPT_RECONNECT опция к mysql_options() управлять поведением пересоединения.