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 描述了允许的选项,它们的作用以及如何使用arg1
和arg2
。
MYSQL_OPT_CONNECT_ATTR_ADD
(参数类型:char *, char *
)
此选项将属性键值对添加到当前连接属性集,以在连接时传递给服务器。这两个参数都是指向以 null 终止的字符串的指针。第一个和第二个字符串分别指示键和值。如果键为空或在当前连接属性集中已经存在,则发生错误。密钥名称与现有密钥的比较区分大小写。
以下划线(_
)开头的键名保留供内部使用,不应由应用程序创建。该约定允许 MySQL 引入新属性,而不会与应用程序属性发生冲突。
mysql_options4()对其将接受的连接属性数据的总大小限制为 64KB。对于导致超出此限制的呼叫,发生CR_INVALID_PARAMETER_NO错误。属性大小限制检查也发生在服务器端。有关详细信息,请参见第 25.12.9 节“性能架构连接属性 table”,该文档还描述了性能模式如何通过session_connect_attrs和session_account_connect_attrstable 公开连接属性。
另请参见mysql_options()函数的描述中有关MYSQL_OPT_CONNECT_ATTR_RESET
和MYSQL_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));
}