頭檔案
#include<mysql.h>
函式原型
int mysql_options(MYSQL *mysql, enum mysql_option option, const void *arg);
說明
可用於設定額外的連線選項,並影響連線的行為。可多次調用該函式來設定數個選項。
應在mysql_init()之後、以及mysql_connect()或mysql_real_connect()之前調用mysql_options()。
選項參量指的是你打算設定的選項。Arg參量是選項的值。如果選項是整數,那么arg應指向整數的值。
注意,如果使用了MYSQL_READ_DEFAULT_FILE或MYSQL_READ_DEFAULT_GROUP,總會讀取客戶端組。
選項檔案中指定的組可能包含下述選項:
選項 | 描述 |
connect-timeout | 以秒為單位連線逾時,該逾時也用作等待伺服器首次回應時間 |
compress | 使用壓縮客戶端/伺服器協定。 |
database | 如果在連線命令中未指定資料庫,連線到該資料庫。 |
debug | 調試選項。 |
disable-local-infile | 禁止使用LOAD DATA LOCAL。 |
host | 默認主機名。 |
init-command | 連線到MySQL伺服器時將執行的命令。 |
interactive-timeout | 等同於將CLIENT_INTERACTIVE指定為mysql_real_connect()。 |
local-infile[=(0|1)] | 如果無參量或參量!= 0,那么將允許使用LOAD DATA LOCAL。 |
max_allowed_packet | 客戶端能夠從伺服器讀取的最大信息包。 |
multi-results | 允許多語句執行或存儲程式的多個結果集。 |
multi-statements | 允許客戶端在1個字元串內傳送多條語句。(由“;”隔開)。 |
password | 默認密碼。 |
pipe | 使用命名管道連線到NT平台上的MySQL伺服器。 |
protocol={TCP | SOCKET | PIPE | MEMORY} | 連線到伺服器時將使用的協定。 |
port | 默認連線埠號。 |
return-found-rows | 通知mysql_info()返回發現的行,而不是使用UPDATE時更新的行。 |
shared-memory-base-name= name | 共享記憶體名稱,用於連線到伺服器(默認為"MYSQL")。 |
socket | 默認的套接字檔案。 |
user | 默認用戶。 |
注意,“timeout”(逾時)已被“connect-timeout”(連線逾時)取代,但為了保持向後兼容,在MySQL 5.1.2-alpha中仍支持“timeout”(逾時)。
該函式成功時返回0。如果使用了未知選項,返回非0值。
範例
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));
}
該代碼請求客戶端使用壓縮客戶端/伺服器協定,並從my.cnf檔案的obdc部分讀取額外選項。