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));
}