int
mysql_options4(MYSQL *mysql,
enum mysql_option option,
const void *arg1,
const void *arg2)
mysql_options4()
與 mysql_options()
類似,但具有額外的第四個引數,以便可以為第二個引數中指定的選項傳遞兩個值。
以下清單描述了允許的選項、它們的效果,以及如何使用 arg1
和 arg2
。
-
MYSQL_OPT_CONNECT_ATTR_ADD
(引數類型:char *, char *
)此選項會將屬性鍵值對新增至目前要於連線時傳遞至伺服器的連線屬性集。兩個引數都是指向以 null 結尾字串的指標。第一個和第二個字串分別表示鍵和值。如果金鑰為空或已存在於目前的連線屬性集中,則會發生錯誤。將金鑰名稱與現有金鑰進行比較時,會區分大小寫。
以底線 (
_
) 開頭的金鑰名稱保留供內部使用,應用程式不得建立此類金鑰名稱。此慣例允許 MySQL 引入新屬性,而不會與應用程式屬性衝突。mysql_options4()
對其接受的連線屬性資料總大小施加了 64KB 的限制。對於導致超出此限制的呼叫,會發生CR_INVALID_PARAMETER_NO
錯誤。屬性大小限制檢查也會在伺服器端發生。如需詳細資訊,請參閱效能結構描述連線屬性表,其中也說明效能結構描述如何透過session_connect_attrs
和session_account_connect_attrs
表格公開連線屬性。另請參閱
mysql_options()
函式說明中MYSQL_OPT_CONNECT_ATTR_RESET
和MYSQL_OPT_CONNECT_ATTR_DELETE
選項的說明。 -
MYSQL_OPT_USER_PASSWORD
(引數類型:unsigned int *, char *
)此選項指定多重因素驗證因素的密碼 (請參閱多重因素驗證)。
第一個引數指向一個
unsigned int
變數,該變數的值應為 1、2 或 3,以表示要指定密碼的因素。第二個引數指向提供密碼值的字元字串。此選項已在 MySQL 8.0.27 中新增。
-
指定了重複的屬性名稱。
-
金鑰名稱為空,或金鑰值連線屬性資料量超過 64KB 限制。
-
記憶體不足。
此範例示範指定連線屬性的呼叫
MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_OPT_CONNECT_ATTR_RESET, 0);
mysql_options4(&mysql,MYSQL_OPT_CONNECT_ATTR_ADD, "key1", "value1");
mysql_options4(&mysql,MYSQL_OPT_CONNECT_ATTR_ADD, "key2", "value2");
mysql_options4(&mysql,MYSQL_OPT_CONNECT_ATTR_ADD, "key3", "value3");
mysql_options(&mysql,MYSQL_OPT_CONNECT_ATTR_DELETE, "key1");
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));
}