25.2.3.26. mysql_get_character_set_info()
void mysql_get_character_set_info(MYSQL *mysql, MY_CHARSET_INFO *cs)
描述
该函数提供了关于默认客户端字符集的信息。可以使用mysql_set_character_set()函数更改默认的字符集。
该函数是在MySQL 5.0.10中增加的。
示例:
if (!mysql_set_character_set(&mysql, "utf8"))
{
MY_CHARSET_INFO cs;
mysql_get_character_set_info(&mysql, &cs);
printf("character set information:\n");
printf("character set name: %s\n", cs.name);
printf("collation name: %s\n", cs.csname);
printf("comment: %s\n", cs.comment);
printf("directory: %s\n", cs.dir);
printf("multi byte character min. length: %d\n", cs.mbminlen);
printf("multi byte character max. length: %d\n", cs.mbmaxlen);
}
25.2.3.27. mysql_get_client_info()
char *mysql_get_client_info(void)
描述
返回表示客户端库版本的字符串。
返回值
表示MySQL客户端库版本的字符串。
错误
无。
25.2.3.28. mysql_get_client_version()
unsigned long mysql_get_client_version(void)
描述
返回表示客户端库版本的整数。该值的格式是XYYZZ,其中X是主版本号,YY是发布级别,ZZ是发布级别内的版本号。例如,值40102表示客户端库的版本是4.1.2。
返回值
表示MySQL客户端库版本的整数。
错误
无。
25.2.3.29. mysql_get_host_info()
char *mysql_get_host_info(MYSQL *mysql)
描述
返回描述了所使用连接类型的字符串,包括服务器主机名。
返回值
代表服务器主机名和连接类型的字符串。
错误
无。
25.2.3.30. mysql_get_proto_info()
unsigned int mysql_get_proto_info(MYSQL *mysql)
描述
返回当前连接所使用的协议版本。
返回值
代表当前连接所使用协议版本的无符号整数。
错误
无。
25.2.3.31. mysql_get_server_info()
char *mysql_get_server_info(MYSQL *mysql)
描述
返回代表服务器版本号的字符串。
返回值
代表服务器版本号的字符串。
错误
无。
25.2.3.32. mysql_get_server_version()
unsigned long mysql_get_server_version(MYSQL *mysql)
描述
以整数形式返回服务器的版本号。
返回值
表示MySQL服务器版本的数值,格式如下:
major_version*10000 + minor_version *100 + sub_version
例如,对于5.0.12,返回500012。
在客户端程序中,为了快速确定某些与版本相关的服务器功能是否存在,该函数很有用。
错误
无。
25.2.3.33. mysql_hex_string()
unsigned long mysql_hex_string(char *to, const char *from, unsigned long length)
描述
该函数用于创建可用在SQL语句中的合法SQL字符串。请参见9.1.1节,“字符串”。
该字符串从形式上编码为十六进制格式,每个字符编码为2个十六进制数。结果被置入其中,并添加1个终结Null字节。
“from”所指向的字符串必须是长度字节“long”。必须为“to”分配缓冲区,缓冲区至少为length*2+1字节长。当mysql_hex_string()返回时,“to”的内容为由Null终结的字符串。返回值是编码字符串的长度,不包括终结用Null字符。
可采用0xvalue或X'value'格式将返回值置于SQL语句中。但是,返回值不包括0x或X'...'。调用者必须提供所希望的格式是何种。
示例:
char query[1000],*end;
end = strmov(query,"INSERT INTO test_table values(");
end = strmov(end,"0x");
end += mysql_hex_string(end,"What's this",11);
end = strmov(end,",0x");
end += mysql_hex_string(end,"binary data: \0\r\n",16);
*end++ = ')';
if (mysql_real_query(&mysql,query,(unsigned int) (end - query)))
{
fprintf(stderr, "Failed to insert row, Error: %s\n",
mysql_error(&mysql));
}
示例中所使用的strmov()函数包含在mysqlclient库中,它的工作方式类似于strcpy(),但返回指向第1个参数终结Null的指针。
返回值
置于“to”中的值的长度,不包括终结用Null字符。
错误
无。
25.2.3.34. mysql_info()
char *mysql_info(MYSQL *mysql)
描述
检索字符串,该字符串提供了关于最近执行查询的信息,但仅对这里列出的语句有效。对于其他语句,mysql_info()返回NULL。字符串的格式取决于查询的类型,如本节所述。数值仅是说明性的,字符串包含与查询相适应的值。
? INSERT INTO ... SELECT ...
字符串格式:记录,100;副本,0;警告,0
? INSERT INTO ... VALUES (...),(...),(...)...
字符串格式:记录,3;副本,0;警告,0
? LOAD DATA INFILE ...
字符串格式:记录,1;删除,0;跳过,0;警告,0
? ALTER TABLE
字符串格式:记录,3;副本,0;警告,0
? UPDATE
字符串格式:匹配行,40;更改,40;警告,0
注意,mysql_info()为INSERT ... VALUES返回非NULL值,INSERT ... VALUES仅用于多行形式的语句(也就是说,仅当指定了多个值列表时)。
返回值
字符串,它表示最近所执行查询的额外信息。如果该查询无可用信息,返回NULL。
错误
无。
25.2.3.35. mysql_init()
MYSQL *mysql_init(MYSQL *mysql)
描述
分配或初始化与mysql