文档首页
MySQL 8.4 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));
}