8.4.3.159 mysql_options()
int mysql_options(MYSQL *mysql, enum mysql_option option, const char *arg)
8.4.3.160 Описание
Может использоваться для установки дополнительных опций соединения и
влияет на режим работы соединения. Эта функция может вызываться
многократно для установки нескольких опций.
Функция mysql_options()
должна вызываться после функции mysql_init()
и
перед функцией mysql_connect()
или mysql_real_connect()
.
Аргумент option
представляет собой опцию, которую требуется установить;
аргумент arg
является величиной этой опции. Если данная опция является
целым числом, то аргумент arg должен указывать на величину целого числа.
Возможные значения опций:
Опция | Тип аргумента | Функция
|
MYSQL_OPT_CONNECT_TIMEOUT | unsigned int * | Время ожидания для соединения в секундах.
|
MYSQL_OPT_COMPRESS | Не используется | Использовать сжатие в клиент-серверном протоколе.
|
MYSQL_OPT_LOCAL_INFILE | Опциональный указатель на uint | Если указатель не задан или указывает на unsigned int != 0 команда LOAD LOCAL INFILE разрешена.
|
MYSQL_OPT_NAMED_PIPE | Не используется | Использовать именованные каналы для соединения с сервером MySQL на NT.
|
MYSQL_INIT_COMMAND | char * | Команда для исполнения при подключении к серверу MySQL. При восстановлении соединения будет снова автоматически выполнена.
|
MYSQL_READ_DEFAULT_FILE | char * | Читать опции из указанного файла опций вместо чтения из файла `my.cnf'.
|
MYSQL_READ_DEFAULT_GROUP | char * | Читать опции из указанной группы из файла `my.cnf' или из файла заданного в MYSQL_READ_DEFAULT_FILE .
|
Следует помнить, что группа client
читается всегда при использовании
MYSQL_READ_DEFAULT_FILE
или MYSQL_READ_DEFAULT_GROUP
.
Упомянутая группа в файле опций может содержать следующие опции:
Опция | Описание
|
connect-timeout | Время ожидания для соединения в секундах. Для Linux это время ожидания используется также для ожидания первого ответа с сервера.
|
compress | Использовать сжатие в клиент-серверном протоколе.
|
database | Подключиться к этой базе данных, если никакая база данных не была указана в данной команде подключения.
|
debug | Опции отладки.
|
disable-local-infile | Блокировка использования LOAD DATA LOCAL .
|
host | Имя хоста по умолчанию.
|
init-command | Команда для исполнения при подключении к серверу MySQL. При восстановлении соединения будет снова автоматически выполнена.
|
interactive-timeout | Аналогично заданию CLIENT_INTERACTIVE в mysql_real_connect() . See section 8.4.3.171 mysql_real_connect() .
|
local-infile[=(0|1)] | Если аргумент не задан или указан аргумент != 0 , то разрешено использование LOAD DATA LOCAL .
|
password | Пароль по умолчанию.
|
pipe | Использовать именованные каналы для соединения с сервером MySQL на NT.
|
port | Номер порта по умолчанию.
|
return-found-rows | Предписывает mysql_info() возвращать найденные строки вместо обновления их при выполнении UPDATE .
|
socket | Номер сокета по умолчанию.
|
user | Пользователь по умолчанию.
|
Следует помнить, что timeout
замещен на connect-timeout
, но timeout
временно еще работает.
Для более подробной информации о файлах опций см. раздел See section 4.1.2 Файлы параметров `my.cnf'.
8.4.3.161 Возвращаемые значения
Нуль при успешном выполнении. Величина, отличная от нуля, если
используется неизвестная опция.
8.4.3.162 Пример
MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_OPT_COMPRESS,0);
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"odbc");
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));
}
Вышеприведенный пример запрашивает клиента использовать сжатый
клиент-серверный протокол и читать дополнительные опции из секции odbc
в
файле `my.cnf'.