Documentation Home

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_attrs,其中还描述了性能模式如何通过和 session_account_connect_attrs 表 公开连接属性 。

    另请参阅函数说明中的 MYSQL_OPT_CONNECT_ATTR_RESETMYSQL_OPT_CONNECT_ATTR_DELETE选项的说明 mysql_options()

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