27.7.6.51 mysql_options4()

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

Description

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

以下列 table 描述了允许的选项,它们的作用以及如何使用arg1arg2

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

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

mysql_options4()对其将接受的连接属性数据的总大小限制为 64KB。对于导致超出此限制的呼叫,发生CR_INVALID_PARAMETER_NO错误。属性大小限制检查也发生在服务器端。有关详细信息,请参见第 25.12.9 节“性能架构连接属性 table”,该文档还描述了性能模式如何通过session_connect_attrssession_account_connect_attrstable 公开连接属性。

另请参见mysql_options()函数的描述中有关MYSQL_OPT_CONNECT_ATTR_RESETMYSQL_OPT_CONNECT_ATTR_DELETE选项的描述。

Return Values

零成功。如果您指定未知选项,则为非零值。

Errors

指定了重复的属性名称。

密钥名称为空或密钥值连接属性数据量超过 64KB 限制。

记不清。

Example

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

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