文档主页
MySQL 9.0 C API 开发人员指南
下载本手册
PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb


5.4.55 mysql_options4()

int
mysql_options4(MYSQL *mysql,
               enum mysql_option option,
               const void *arg1,
               const void *arg2)

描述

mysql_options4()mysql_options() 类似,但它多了一个第四个参数,因此可以为第二个参数中指定的选项传递两个值。

以下列表描述了允许的选项、它们的效果以及如何使用 arg1arg2

  • MYSQL_OPT_CONNECT_ATTR_ADD (参数类型:char *, char *)

    此选项将一个属性键值对添加到当前连接属性集中,以便在连接时传递给服务器。两个参数都是指向以 null 结尾的字符串的指针。第一个和第二个字符串分别表示键和值。如果键为空或在当前连接属性集中已存在,则会发生错误。键名称与现有键的比较区分大小写。

    以下划线 (_) 开头的键名称保留供内部使用,应用程序程序不应创建这些键名称。此约定允许 MySQL 引入新的属性,而不会与应用程序属性冲突。

    mysql_options4() 对它接受的连接属性数据总大小施加了 64KB 的限制。对于导致此限制被超过的调用,会发生 CR_INVALID_PARAMETER_NO 错误。属性大小限制检查也会在服务器端进行。有关详细信息,请参阅 性能模式连接属性表,其中还描述了性能模式如何通过 session_connect_attrssession_account_connect_attrs 表公开连接属性。

    另请参阅 mysql_options() 函数描述中对 MYSQL_OPT_CONNECT_ATTR_RESETMYSQL_OPT_CONNECT_ATTR_DELETE 选项的描述。

  • MYSQL_OPT_USER_PASSWORD (参数类型:unsigned int *, char *)

    此选项指定多因素身份验证因素的密码(请参阅 多因素身份验证)。

    第一个参数指向一个 unsigned int 变量,该变量应该具有值 1、2 或 3,以指示正在为其指定密码的因素。第二个参数指向一个提供密码值的字符字符串。

    此选项是在 MySQL 8.0.27 中添加的。

返回值

成功返回零。如果指定了未知选项,则返回非零值。

错误

示例

此示例演示了指定连接属性的调用

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