MySql5.1CAPI函数描述 mysql 5.7 json 函数

MySql5.1 C API函数描述

[1] mysql_affected_rows()
定义函数my_ulonglong mysql_affected_rows(MYSQL *mysql)

功能返回sql执行后影响到的行数。
返回值 影响或检索的行数。
错误无。
示例:
mysql_query(&mysql,"UPDATE products SETcost=cost*1.25 WHERE group=10");

printf("%ld products updated",(long)mysql_affected_rows(&mysql));

[2] mysql_autocommit()
定义函数 my_boolmysql_autocommit(MYSQL *mysql, my_bool mode)

功能如果模式为“1”,启用autocommit模式;如果模式为“0”,禁止autocommit模式。
返回值如果返回0,错误返回非0值。
[3] mysql_change_user()
定义函数 my_boolmysql_change_user(MYSQL *mysql, const char *user, const char*password, const char *db)

功能更改用户,并使由db指定的数据库成为由mysql指定的连接上的默认数据库(当前数据库)。
返回值0表示成功,非0值表示出现错误。

示例:
if (mysql_change_user(&mysql, "user", "password","new_database"))

{

fprintf(stderr, "Failed tochange user. Error: %sn",

mysql_error(&mysql));

}

[4] mysql_character_set_name()
定义函数 constchar *mysql_character_set_name(MYSQL *mysql)

功能为当前连接返回默认的字符集。
返回值默认字符集。

[5] mysql_close()
void mysql_close(MYSQL *mysql)

功能关闭前面打开的连接。如果句柄是由mysql_init()或mysql_connect()自动分配的,mysql_close()还将解除分配由mysql指向的连接句柄。
返回值无。
[6] mysql_commit()
定义函数 my_boolmysql_commit(MYSQL *mysql)

功能提交当前事务。
返回值 成功返回0,错误返回非0值。

[7] mysql_connect()
定义函数 MYSQL*mysql_connect(MYSQL *mysql, const char *host, const char *user,const char *passwd)

功能该函数已过时。最好使用mysql_real_connect()取而代之。
返回值与mysql_real_connect()的相同。
[8] mysql_create_db()
定义函数 intmysql_create_db(MYSQL *mysql, const char *db)

功能创建db参数命名的数据库。该函数过时。最好用mysql_query()来发出CREATE DATABASE语句。
返回值 成功返回0,错误返回非0值。

示例:
if(mysql_create_db(&mysql, "my_database"))

{

fprintf(stderr, "Failed tocreate new database. Error: %sn",

mysql_error(&mysql));

}

[9] mysql_data_seek()
定义函数 voidmysql_data_seek(MYSQL_RES *result, my_ulonglong offset)

功能在查询结果集中寻找任意行。偏移值为行号,范围从0到mysql_num_rows(result)-1。
返回值 无。
[10] mysql_debug()
定义函数 voidmysql_debug(const char *debug)

功能用给定的字符串执行DBUG_PUSH。mysql_debug()采用FredFish调试库。要想使用该函数,必须编译客户端库,使之支持调试功能。请参见E.1节,“调试MySQL服务器”。请参见E.2节,“调试MySQL客户端”。
返回值 无。
示例:这里给出的调用将使客户端库在客户端机器的/tmp/client.trace中生成1个跟踪文件。
mysql_debug("d:t:O,/tmp/client.trace");

[11] mysql_drop_db()
定义函数 intmysql_drop_db(MYSQL *mysql, const char *db)

功能撤销由db参数命名数据库。 该函数已过时。最好用mysql_query()来删除数据库
返回值如果成功撤销了数据库,返回0。如果出现错误,返回非0值。

示例:
if(mysql_drop_db(&mysql, "my_database"))

fprintf(stderr, "Failed to drop the database:Error: %sn",

mysql_error(&mysql));

[12] mysql_dump_debug_info()
定义函数 intmysql_dump_debug_info(MYSQL *mysql)

功能指示服务器将一些调试信息写入日志。要想使之工作,已连接的用户必须具有SUPER权限。
返回值如果命令成功,返回0。如果出现错误,返回非0值。

[13] mysql_eof()
定义函数 my_boolmysql_eof(MYSQL_RES *result)

功能mysql_eof()确定是否读取到结果集最后1行。该函数已过时。应使用mysql_errno()或mysql_error()取而代之。
函数说明

如果通过成功调用mysql_store_result()获得了结果集,客户端将在1次操作中收到整个结果集。在该情况下,从mysql_fetch_row()返回的NULL总表示已到达结果集末尾,而且没必要调用mysql_eof()。与mysql_store_result()一起使用时,mysql_eof()总返回“真”。
另一方面,如果你使用mysql_use_result()来初始化结果集检索,当重复调用mysql_fetch_row()时,将逐个地从服务器获取结果集的行。由于在该过程中,可能出现连接上的错误,从mysql_fetch_row()返回的NULL值不一定表示已正常地抵达结果集末尾。在该情况下,可以使用mysql_eof()来判定出现了什么情况。如果抵达结果集末尾,mysql_eof()返回非0值,如果出现错误,返回0。
返回值错误返回0,如果抵达结果集的末尾,返回非0值。
示例:
在下面的示例中,介绍了使用mysql_eof()的方法:
mysql_query(&mysql,"SELECT * FROM some_table");

result = mysql_use_result(&mysql);

while((row = mysql_fetch_row(result)))

{

// dosomething with data

}

if(!mysql_eof(result)) // mysql_fetch_row()failed due to an error

{

fprintf(stderr, "Error: %sn",mysql_error(&mysql));

}

但是,你也能使用标准的MySQL错误函数实现相同的结果:
mysql_query(&mysql,"SELECT * FROM some_table");

result = mysql_use_result(&mysql);

while((row = mysql_fetch_row(result)))

{

// dosomething with data

}

if(mysql_errno(&mysql)) //mysql_fetch_row() failed due to an error

{

fprintf(stderr, "Error: %sn",mysql_error(&mysql));

}

[14] mysql_errno()
定义函数 unsignedint mysql_errno(MYSQL *mysql)

功能mysql_errno()返回最近调用的API函数的错误代码,该函数调用可能成功也可能失败。“0”返回值表示未出现错误。在MySQLerrmsg.h头文件中,列出了客户端错误消息编号。
注意如果成功,某些函数,如mysql_fetch_row()等,不会设置mysql_errno()。
经验规则是,如果成功,所有向服务器请求信息的函数均会复位mysql_errno()。
返回值失败,返回上次mysql_xxx()调用的错误代码。“0”表示未出现错误。
[15] mysql_error()
定义函数 constchar *mysql_error(MYSQL *mysql)

功能对于失败的最近调用的API函数,mysql_error()返回包含错误消息的、由Null终结的字符串。如果该函数未失败,mysql_error()的返回值可能是以前的错误,或指明无错误的空字符串。
说明经验规则是,如果成功,所有向服务器请求信息的函数均会复位mysql_error()。
对于复位mysql_errno()的函数,下述两个测试是等效的:
if(mysql_errno(&mysql))

{

// anerror occurred

}

if(mysql_error(&mysql)[0] != '')

{

// anerror occurred

}

返回值
返回描述错误的、由Null终结的字符串。如果未出现错误,返回空字符串。

[16] mysql_escape_string()
应使用mysql_real_escape_string()取而代之!
该函数与mysql_real_escape_string()等同,但mysql_real_escape_string()会将连接处理程序作为其第1个参量,并按照当前字符集对字符串进行转义处理。mysql_escape_string()不采用连接参量,而且不考虑当前字符集设置。
[17] mysql_fetch_field()
定义函数MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *result)

功能返回采用MYSQL_FIELD结构的结果集的列。重复调用该函数,以检索关于结果集中所有列的信息。未剩余字段时,mysql_fetch_field()返回NULL。
每次执行新的SELECT查询时,将复位mysql_fetch_field(),以返回关于第1个字段的信息。调用mysql_field_seek()也会影响mysql_fetch_field()返回的字段。
返回值当前列的MYSQL_FIELD结构。如果未剩余任何列,返回NULL。
示例:
MYSQL_FIELD *field;

while((field = mysql_fetch_field(result)))

{

printf("field name %sn", field->name);

}

[18] mysql_fetch_field_direct()

定义函数MYSQL_FIELD *mysql_fetch_field_direct(MYSQL_RES *result, unsignedint fieldnr)

功能给定结果集内某1列的字段编号fieldnr,以MYSQL_FIELD结构形式返回列的字段定义。Fieldnr的值应在从0到mysql_num_fields(result)-1的范围内。
返回值对于指定列,返回MYSQL_FIELD结构。
示例:
unsigned int num_fields;

unsigned int i;

MYSQL_FIELD *field;

num_fields = mysql_num_fields(result);

for(i = 0; i < num_fields; i++)

{

field =mysql_fetch_field_direct(result, i);

printf("Field %u is %sn", i, field->name);

}

[19] mysql_fetch_fields()
定义函数MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES *result)

功能对于结果集,返回所有MYSQL_FIELD结构的数组。每个结构提供了结果集中1列的字段定义。
返回值 关于结果集所有列的MYSQL_FIELD结构的数组。
示例:
unsigned int num_fields;

unsigned int i;

MYSQL_FIELD *fields;

num_fields = mysql_num_fields(result);

fields = mysql_fetch_fields(result);

for(i = 0; i < num_fields; i++)

{

printf("Field %u is %sn",i, fields[i].name);

}

[20] mysql_fetch_lengths()
定义函数 unsignedlong *mysql_fetch_lengths(MYSQL_RES *result)

功能返回结果集内当前行的列的长度。如果打算复制字段值,该长度信息有助于优化,这是因为,你能避免调用strlen()。此外,如果结果集包含二进制数据,必须使用该函数来确定数据的大小,原因在于,对于包含Null字符的任何字段,strlen()将返回错误的结果。
对于空列以及包含NULL值的列,其长度为0。要想了解区分这两类情况的方法,请参见关于mysql_fetch_row()的介绍。
返回值无符号长整数的数组表示各列的大小(不包括任何终结NULL字符)。如果出现错误,返回NULL。
示例:
MYSQL_ROW row;

unsigned long *lengths;

unsigned int num_fields;

unsigned int i;

row = mysql_fetch_row(result);

if (row)

{

num_fields = mysql_num_fields(result);

lengths =mysql_fetch_lengths(result);

for(i =0; i < num_fields; i++)

{

printf("Column %u is %lu bytes in length.n", i, lengths[i]);

}

}

[21] mysql_fetch_row()
定义函数MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)

功能 检索结果集的下一行。
返回值 下一行的MYSQL_ROW结构。如果没有更多要检索的行或出现了错误,返回NULL。
示例:
MYSQL_ROW row;

unsigned int num_fields;

unsigned int i;

num_fields = mysql_num_fields(result);

while ((row = mysql_fetch_row(result)))

{

unsigned long *lengths;

lengths =mysql_fetch_lengths(result);

for(i = 0; i< num_fields; i++)

{

printf("[%.*s] ", (int) lengths[i], row[i] ? row[i] : "NULL");

}

printf("n");

}

[22] mysql_field_count()
定义函数 unsignedint mysql_field_count(MYSQL *mysql)

功能 返回作用在连接上的最近查询的列数。
函数说明该函数的正常使用是在mysql_store_result()返回NULL(因而没有结果集指针)时。在这种情况下,可调用mysql_field_count()来判定mysql_store_result()是否应生成非空结果。这样,客户端就能采取恰当的动作,而无需知道查询是否是SELECT(或类似SELECT的)语句。在这里给出的示例中,演示了完成它的方法。
返回值 表示结果集中列数的无符号整数。
示例:
MYSQL_RES *result;

unsigned int num_fields;

unsigned int num_rows;

if (mysql_query(&mysql,query_string))

{

//error

}

else // query succeeded, process any data returned by it

{

result =mysql_store_result(&mysql);

if(result) // there are rows

{

num_fields = mysql_num_fields(result);

// retrieve rows, then call mysql_free_result(result)

}

else // mysql_store_result() returned nothing;should it have?

{

if(mysql_field_count(&mysql) == 0)

{

// query does not return data

// (it was not a SELECT)

num_rows = mysql_affected_rows(&mysql);

}

else // mysql_store_result() should have returned data

{

fprintf(stderr, "Error: %sn",mysql_error(&mysql));

}

}

}

另一种可选的方法是,用mysql_errno(&mysql)替换mysql_field_count(&mysql)调用。在该情况下,无论语句是否是SELECT,你将直接从mysql_store_result()查找错误,而不是从mysql_field_count()的值进行推断。
[23] mysql_field_seek()
定义函数MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES *result,MYSQL_FIELD_OFFSET offset)

功能 将字段光标设置到给定的偏移处
返回值
字段光标的前一个值。
[24] mysql_field_tell()
MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RES *result)

功能返回上一个mysql_fetch_field()所使用的字段光标的定义。该值可用作mysql_field_seek()的参量。
返回值 字段光标的当前偏移量。
[25] mysql_free_result()
定义函数 voidmysql_free_result(MYSQL_RES *result)

功能释放由mysql_store_result()、mysql_use_result()、mysql_list_dbs()等为结果集分配的内存。完成对结果集的操作后,必须调用mysql_free_result()释放结果集使用的内存。
释放完成后,不要尝试访问结果集。
返回值 无。
[26] mysql_get_character_set_info()
定义函数 voidmysql_get_character_set_info(MYSQL *mysql, MY_CHARSET_INFO *cs)

功能该函数提供了关于默认客户端字符集的信息。可以使用mysql_set_character_set()函数更改默认的字符集。该函数是在MySQL5.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: %sn", cs.name);

printf("collation name: %sn", cs.csname);

printf("comment: %sn", cs.comment);

printf("directory: %sn", cs.dir);

printf("multi byte character min. length: %dn", cs.mbminlen);

printf("multi byte character max. length: %dn", cs.mbmaxlen);

}

[27] mysql_get_client_info()
定义函数 char*mysql_get_client_info(void)

功能 返回表示客户端库版本的字符串。
返回值 表示MySQL客户端库版本的字符串。
[28] mysql_get_client_version()
定义函数 unsignedlong mysql_get_client_version(void)

功能返回表示客户端库版本的整数。该值的格式是XYYZZ,其中X是主版本号,YY是发布级别,ZZ是发布级别内的版本号。例如,值40102表示客户端库的版本是4.1.2。
返回值 表示MySQL客户端库版本的整数。
[29] mysql_get_host_info()
char *mysql_get_host_info(MYSQL *mysql)

功能返回描述了所使用连接类型的字符串,包括服务器主机名。
返回值 代表服务器主机名和连接类型的字符串。
[30] mysql_get_proto_info()
定义函数 unsignedint mysql_get_proto_info(MYSQL *mysql)

功能 返回当前连接所使用的协议版本。
返回值 代表当前连接所使用协议版本的无符号整数。
[31] mysql_get_server_info()
char *mysql_get_server_info(MYSQL *mysql)

功能 返回代表服务器版本号的字符串。
返回值 代表服务器版本号的字符串。
[32] mysql_get_server_version()
定义函数 unsignedlong mysql_get_server_version(MYSQL *mysql)

功能 以整数形式返回服务器的版本号。
返回值 表示MySQL服务器版本的数值,格式如下:
major_version*10000 + minor_version *100 + sub_version

例如,对于5.0.12,返回500012。
在客户端程序中,为了快速确定某些与版本相关的服务器功能是否存在,该函数很有用。
[33] mysql_hex_string()
定义函数 unsignedlong mysql_hex_string(char *to, const char *from, unsigned longlength)

功能该函数用于创建可用在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_tablevalues(");

end = strmov(end,"0x");

end += mysql_hex_string(end,"What's this",11);

end = strmov(end,",0x");

end += mysql_hex_string(end,"binary data: rn",16);

*end++ = ')';

if (mysql_real_query(&mysql,query,(unsigned int)(end - query)))

{

fprintf(stderr, "Failed toinsert row, Error: %sn",

mysql_error(&mysql));

}

示例中所使用的strmov()函数包含在mysqlclient库中,它的工作方式类似于strcpy(),但返回指向第1个参数终结Null的指针。
返回值 置于“to”中的值的长度,不包括终结用Null字符。
[34] mysql_info()
定义函数 char*mysql_info(MYSQL *mysql)

功能检索字符串,该字符串提供了关于最近执行查询的信息,但仅对这里列出的语句有效。对于其他语句,mysql_info()返回NULL。字符串的格式取决于查询的类型,如本节所述。数值仅是说明性的,字符串包含与查询相适应的值。
返回值 字符串,它表示最近所执行查询的额外信息。如果该查询无可用信息,返回NULL。
[35] mysql_init()
定义函数 MYSQL*mysql_init(MYSQL *mysql)

功能分配或初始化与mysql_real_connect()相适应的MYSQL对象。
返回值 初始化的MYSQL*句柄。如果无足够内存以分配新的对象,返回NULL。
[36] mysql_insert_id()
定义函数my_ulonglong mysql_insert_id(MYSQL *mysql)

功能返回由以前的INSERT或UPDATE语句为AUTO_INCREMENT列生成的值。在包含AUTO_INCREMENT字段的表中执行了INSERT语句后,应使用该函数。
返回值 在前面的讨论中予以了介绍。

[37] mysql_kill()
定义函数 intmysql_kill(MYSQL *mysql, unsigned long pid)

功能 请求服务器杀死由pid指定的线程。
返回值 0表示成功,非0值表示出现错误。

[38] mysql_library_end()
定义函数 voidmysql_library_end(void)

功能
它是mysql_server_end()函数的同义词。
[39] mysql_library_init()
定义函数 intmysql_library_init(int argc, char **argv, char **groups)

功能这是mysql_server_init()函数的同义词。
[40]mysql_list_dbs()定义函数MYSQL_RES *mysql_list_dbs(MYSQL *mysql, const char *wild)

功能返回由服务器上的数据库名称组成的结果集,该服务器与由通配符参数指定的简单正则表达式匹配。通配符参数可以包含通配符“%”或“_”,也可以是NULL指针,以便与所有的数据库匹配。调用mysql_list_dbs()的方法类似于执行查询SHOWdatabase [LIKE wild]。
必须用mysql_free_result()释放结果集。

返回值 成功后返回MYSQL_RES结果集。如果出现错误,返回NULL。
[41] mysql_list_fields()
定义函数MYSQL_RES *mysql_list_fields(MYSQL *mysql, const char *table, constchar *wild)

功能返回由给定表中的字段名称组成的结果集,给定表与由通配符参数指定的简单正则表达式匹配。通配符参数可以包含通配符“%”或“_”,也可以是NULL指针,以便与所有的字段匹配。调用mysql_list_fields()的方法类似于执行查询SHOWCOLUMNS FROM tbl_name [LIKE wild]。
注意 建议使用SHOW COLUMNS FROMtbl_name,而不是mysql_list_fields()。
返回值 如果成功,返回MYSQL_RES结果集。如果出现错误,返回NULL。

[42] mysql_list_processes()
定义函数MYSQL_RES *mysql_list_processes(MYSQL *mysql)

功能返回描述当前服务器线程的结果集。必须用mysql_free_result()释放结果集。

返回值 如果成功,返回MYSQL_RES结果集。如果出现错误,返回NULL。

[43] mysql_list_tables()
定义函数MYSQL_RES *mysql_list_tables(MYSQL *mysql, const char *wild)

功能返回由当前数据库内的表名组成的结果集,当前数据库与由通配符参数指定的简单正则表达式匹配。通配符参数可以包含通配符“%”或“_”,也可以是NULL指针,以便与所有的表匹配。调用mysql_list_tables()的方法类似于执行查询HOWtables [LIKE wild]。
说明 必须用mysql_free_result()释放结果集。

返回值 如果成功返回MYSQL_RES结果集。 如果出现错误,返回NULL。

[44] mysql_more_results()
定义函数 my_boolmysql_more_results(MYSQL *mysql)

功能如果当前执行的查询存在多个结果,返回“真”,而且应用程序必须调用mysql_next_result()来获取结果。
返回值 如果存在多个结果,返回“真”(1),如果不存在多个结果,返回“假”(0)。
[45] mysql_next_result()
定义函数 intmysql_next_result(MYSQL *mysql)

功能如果存在多个查询结果,mysql_next_result()将读取下一个查询结果,并将状态返回给应用程序。
如果前面的查询返回了结果集,必须为其调用mysql_free_result()。
返回值 0成功并有多个结果。-1成功但没有多个结果。>0 出错
[46] mysql_num_fields()
定义函数 unsignedint mysql_num_fields(MYSQL_RES *result)

功能返回结果集中的行数。
返回值 表示结果集中行数的无符号整数。
示例: 同22

[47] mysql_num_rows()
定义函数my_ulonglong mysql_num_rows(MYSQL_RES *result)

功能返回结果集中的行数。

返回值 结果集中的行数。
[48] mysql_options()
定义函数 intmysql_options(MYSQL *mysql, enum mysql_option option, const char*arg)

功能可用于设置额外的连接选项,并影响连接的行为。可多次调用该函数来设置数个选项。
应在mysql_init()之后、以及mysql_connect()或mysql_real_connect()之前调用mysql_options()。
返回值 成功时返回0。如果使用了未知选项,返回非0值。

选项参量指的是你打算设置的选项 。 Arg 参量是选项的值 。 如果选项是整数 , 那么 arg 应指
向整数的值。

示例:
MYSQL mysql;

mysql_init(&mysql);

mysql_options(&mysql,MYSQL_OPT_COMPRESS,0);

mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"odbc");

if(!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))

{

fprintf(stderr, "Failed to connect to database: Error: %sn",

mysql_error(&mysql));

}

[49] mysql_ping()
定义函数 intmysql_ping(MYSQL *mysql)

功能检查与服务器的连接是否工作。如果连接丢失,将自动尝试再连接。该函数可被闲置了较长时间的客户端使用,用以检查服务器是否已关闭了连接,并在必要时再次连接。
返回值如果与服务器的连接有效返回0。如果出现错误,返回非0值。返回的非0值不表示MySQL服务器本身是否已关闭,连接可能因其他原因终端,如网络问题等。
[50] mysql_query()
定义函数 intmysql_query(MYSQL *mysql, const char *query)

功能执行由“Null终结的字符串”查询指向的SQL查询。如果希望了解查询是否应返回结果集,可使用mysql_field_count()进行检查。请参见25.2.3.22节,“mysql_field_count()”。
返回值如果查询成功,返回0。如果出现错误,返回非0值。

[51] mysql_real_connect()
定义函数 MYSQL*mysql_real_connect(MYSQL *mysql, const char *host, const char*user, const char *passwd, const char *db, unsigned int port, constchar *unix_socket, unsigned long client_flag)

功能mysql_real_connect()尝试与运行在主机上的MySQL数据库引擎建立连接。在你能够执行需要有效MySQL连接句柄结构的任何其他API函数之前,mysql_real_connect()必须成功完成。
参数的指定方式如下:
·第1个参数应是已有MYSQL结构的地址。调用mysql_real_connect()之前,必须调用mysql_init()初始化MYSQL结构。通过mysql_options()调用,可更改多种连接选项。
·“host”的值必须是主机名或IP地址。
·“user”参数包含用户的MySQL登录ID。
·“passwd”参数包含用户的密码。
·“db”是数据库名称。如果db为NULL,连接会将默认的数据库设为该值。
·如果“port”不是0,其值将用作TCP/IP连接的端口号。注意,“host”参数决定了连接的类型。
·如果unix_socket不是NULL,该字符串描述了应使用的套接字或命名管道。注意,“host”参数决定了连接的类型。
·client_flag的值通常为0,但是,也能将其设置为下述标志的组合,以允许特定功能。具体参数值请查看相关资料。
·对于host,指定NULL值或空字符串("")。
·对于user,指定NULL值或空字符串。
·对于passwd,指定NULL值。(对于密码,mysql_real_connect()调用中的空字符串的值不能被选项文件中的字符串覆盖,这是因为,空字符串明确指明MySQL账户必须有空密码)。
·对于db,指定NULL值或空字符串
·对于port,指定“0”值。
MySql5.1CAPI函数描述 mysql 5.7 json 函数
·对于unix_socket,指定NULL值。
对于某一参数,如果在选项文件中未发现值,将使用它的默认值,如本节前面介绍的那样。
返回值如果连接成功,返回MYSQL*连接句柄。如果连接失败,返回NULL。
示例:
MYSQL mysql;

mysql_init(&mysql);

mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"your_prog_name");

if(!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))

{

fprintf(stderr, "Failed to connect to database: Error: %sn",

mysql_error(&mysql));

}

[52] mysql_real_escape_string()
定义函数 unsignedlong mysql_real_escape_string(MYSQL *mysql, char *to, const char*from, unsigned long length)
描述
按照连接的当前字符集 , 将 “ from ” 中的字符串编码为转义 SQL 字符串 。 将结果置于 “ to ” 中 ,
并添加 1 个终结用 NULL 字节 。 编码的字符为 NUL (ASCII 0) 、 ‘ n ’ 、 ‘ r ’ 、 ‘ ’、 ‘ ' ’ 、 ‘ " ’ 、 以 及
Control-Z ( 请参见 9.1 节 , “ 文字值 ” ) 。 ( 严格地讲 , MySQL 仅需要反斜杠和引号字符 ,用于
引用转义查询中的字符串 。 该函数能引用其他字符 , 从而使得它们在日志文件中具有更好的
可读性 ) 。

“ from ” 指向的字符串必须是长度字节 “ long ” 。必须为 “ to ” 缓冲区分配至少 length*2+1字节。
在最坏的情况下,每个字符或许需要使用 2 个字节进行编码,而且还需要终结 Null 字节 。 当
mysql_real_escape_string() 返回时, “ to ” 的内容是由 Null终结的字符串。返回值是编码字
符串的长度,不包括终结用 Null 字符。

功能该函数用于创建可在SQL语句中使用的合法SQL字符串。


示例:
char query[1000],*end;

end = strmov(query,"INSERT INTO test_table values(");

*end++ = ''';

end += mysql_real_escape_string(&mysql,end,"What's this",11);

*end++ = ''';

*end++ = ',';

*end++ = ''';

end += mysql_real_escape_string(&mysql,end,"binary data: rn",16);

*end++ = ''';

*end++ = ')';

if (mysql_real_query(&mysql,query,(unsigned int)(end - query)))

{

fprintf(stderr, "Failed toinsert row, Error: %sn",

mysql_error(&mysql));

}

该示例中使用的strmov()函数包含在mysqlclient库中,工作方式与strcpy()类似,但会返回指向第1个参数终结用Null的指针。
返回值置于“to”中的值的长度,不包括终结用Null字符。

[53] mysql_real_query()
定义函数 intmysql_real_query(MYSQL *mysql, const char *query, unsigned longlength)

功能执行由“query”指向的SQL查询,它应是字符串长度字节“long”。正常情况下,字符串必须包含1条SQL语句,而且不应为语句添加终结分号(‘;’)或“g”。如果允许多语句执行,字符串可包含由分号隔开的多条语句。对于包含二进制数据的查询,必须使用mysql_real_query()而不是mysql_query(),这是因为,二进制数据可能会包含‘’字符。此外,mysql_real_query()比mysql_query()快,这是因为它不会在查询字符串上调用strlen()。
返回值 如果查询成功,返回0。如果出现错误,返回非0值。

[54] mysql_refresh()
定义函数 intmysql_refresh(MYSQL *mysql, unsigned int options)

功能该函数用于刷新表或高速缓冲,或复位复制服务器信息。连接的用户必须具有RELOAD权限。
“ options ” 参量是一种位掩码,由下述值的任意组合构成。能够以 “ Or ” (或)方式将多个值
组合在一起,用一次调用执行多项操作。
· REFRESH_GRANT
刷新授权表,与 FLUSH PRIVILEGES 类似。
· REFRESH_LOG
刷新日志,与 FLUSH LOGS 类似。
· REFRESH_TABLES
刷新表高速缓冲,与 FLUSH TABLES 类似。
· REFRESH_HOSTS
刷新主机高速缓冲,与 FLUSH HOSTS 类似。
· REFRESH_STATUS
复位状态变量,与 FLUSH STATUS 类似。
· REFRESH_THREADS
刷新线程高速缓冲。
· REFRESH_SLAVE
在从复制服务器上,复位主服务器信息,并重新启动从服务器,与 RESET SLAVE 类似。
· REFRESH_MASTER
在主复制服务器上,删除二进制日志索引中列出的二进制日志文件,并截短索引文件, 与
RESET MASTER 类似。

返回值 0表示成功,非0值表示出现错误。

——[55] mysql_reload()
定义函数 intmysql_reload(MYSQL *mysql)

功能请求MySQL服务器重新加载授权表。连接的用户必须具有RELOAD权限。该函数已过时。最好使用mysql_query()来发出SQLFLUSH PRIVILEGES语句。
返回值 0表示成功,非0值表示出现错误。

[56] mysql_rollback()
定义函数 my_boolmysql_rollback(MYSQL *mysql)

功能回滚当前事务。
返回值 如果成功返回0,如果出现错误,返回非0值。

[57] mysql_row_seek()
定义函数MYSQL_ROW_OFFSET mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSEToffset)

功能将行光标置于查询结果集中的任意行。“offset”值是行偏移量,它应是从mysql_row_tell()或mysql_row_seek()返回的值。该值不是行编号,如果你打算按编号查找结果集中的行,请使用mysql_data_seek()。
返回值 行光标的前一个值。该值可传递给对mysql_row_seek()的后续调用。

[58] mysql_row_tell()
定义函数MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES *result)

功能对于上一个mysql_fetch_row(),返回行光标的当前位置。该值可用作mysql_row_seek()的参量。
仅应在mysql_store_result()之后,而不是mysql_use_result()之后使用mysql_row_tell()。
返回值 行光标的当前偏移量。

[59] mysql_select_db()
定义函数 intmysql_select_db(MYSQL *mysql, const char *db)

功能使由db指定的数据库成为由mysql指定的连接上的默认数据库(当前数据库)。
返回值 0表示成功,非0值表示出现错误。

[60] mysql_set_character_set()
定义函数 intmysql_set_character_set(MYSQL *mysql, char *csname)

功能该函数用于为当前连接设置默认的字符集。
返回值 0表示成功,非0值表示出现错误。

示例:
MYSQL mysql;

mysql_init(&mysql);

if(!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))

{

fprintf(stderr, "Failed to connect to database: Error: %sn",

mysql_error(&mysql));

}

if (!mysql_set_charset_name(&mysql, "utf8"))

{

printf("New client character set: %sn",mysql_character_set_name(&mysql));

}

[61] mysql_set_server_option()
int mysql_set_server_option(MYSQL *mysql, enumenum_mysql_set_option option)

功能允许或禁止连接的选项。
选项可以取下述值之一:

MYSQL_OPTION_MULTI_STATEMENTS_ON 允许多语句支持。
MYSQL_OPTION_MULTI_STATEMENTS_OFF 禁止多语句支持。

返回值 0表示成功,非0值表示出现错误。

[62] mysql_shutdown()
定义函数 intmysql_shutdown(MYSQL *mysql, enum enum_shutdown_levelshutdown_level)

功能请求数据库服务器关闭。
返回值 0表示成功,非0值表示出现错误。

[63] mysql_sqlstate()
定义函数 constchar *mysql_sqlstate(MYSQL *mysql)

功能返回由Null终结的字符串,该字符串包含关于上次错误的SQLSTATE错误代码。
返回值 包含SQLSTATE错误码的、由Null终结的字符串。

[64] mysql_ssl_set()
定义函数 intmysql_ssl_set(MYSQL *mysql, const char *key, const char *cert,const char *ca, const char *capath, const char *cipher)

功能使用mysql_ssl_set(),可采用SSL建立安全连接。必须在mysql_real_connect()之前调用它。除非在客户端库中允许了OpenSSL支持,否则mysql_ssl_set()不作任何事。
参数说明:
·Mysql是从mysql_init()返回的连接处理程序。
·key是key文件的路径名。
·cert是证书文件的路径名。
·ca是证书授权文件的路径名。
·capath是指向目录的路径名,该目录中包含以pem格式给出的受信任SSL CA证书。
·cipher是允许密码的列表,用于SSL加密。
对于任何未使用的SSL参数,可为其给定NULL。
返回值该函数总返回0。如果SSL设置不正确,当你尝试连接时,mysql_real_connect()将返回错误。

[65] mysql_stat()
定义函数 char*mysql_stat(MYSQL *mysql)

功能返回包含特定信息的字符串,该信息与mysqladmin status命令提供的信息类似。
包括以秒为单位的正常运行时间,以及运行线程的数目,问题数,再加载次数,以及打开的表数目。

返回值描述服务器状态的字符集。如果出现错误,返回NULL。

[66] mysql_store_result()
定义函数MYSQL_RES *mysql_store_result(MYSQL *mysql)

功能对于成功检索了数据的每个查询(SELECT、SHOW、DESCRIBE、EXPLAIN、CHECKTABLE等),必须调用mysql_store_result()或mysql_use_result() 。
返回值 具有多个结果的MYSQL_RES结果集合。如果出现错误,返回NULL。

[67] mysql_thread_id()
定义函数 unsignedlong mysql_thread_id(MYSQL *mysql)

功能返回当前连接的线程ID。该值可用作mysql_kill()的参量以杀死线程。
如果连接丢失,并使用mysql_ping()进行了再连接,线程ID将改变。这意味着你不应获取线程ID并保存它供以后使用。应在需要时获取它。
返回值当前连接的线程ID。

[68] mysql_use_result()
定义函数MYSQL_RES *mysql_use_result(MYSQL *mysql)

功能对于成功检索数据的每个查询(SELECT、SHOW、DESCRIBE、EXPLAIN),必须调用mysql_store_result()或mysql_use_result()。
返回值 MYSQL_RES结果结构。如果出现错误,返回NULL。

[69] mysql_warning_count()
定义函数 unsignedint mysql_warning_count(MYSQL *mysql)

功能 返回执行前一个SQL 语句期间生成的告警数目
返回值 告警计数。

  

爱华网本文地址 » http://www.aihuau.com/a/25101010/32377.html

更多阅读

校园修神录5.7攻略 校园修神录3.71攻略

校园修神录5.7攻略——简介今天花了些时间把校园修神录5.7攻略整理份让童鞋们参考,希望对大家有帮助。校园修神录5.7攻略——方法/步骤校园修神录5.7攻略 1、鸡腿水果

mysql 5.6.17下载安装图解 mysql5.6.25安装图解

mysql 5.6.17下载安装图解——简介mysql 5.6.17下载安装图解mysql 5.6.17下载安装图解——工具/原料Windows (x86, 32-bit), MSI Installer 下载地址:http://dev.mysql.com/downloads/installer/5.6.htmlMicrosoft .NET Framework

excel函数实例教程:11 COUNTIF函数怎么用

excel函数实例教程:[11]COUNTIF函数怎么用——简介COUNTIF函数用于统计指定区域中满足给定条件的单元格的个数,可以说该函数在统计中具有十分重要的位置。下面就具体来学习一下该函数的具体使用方法。excel函数实例教程:[11]COUNTIF函

sumif函数的使用方法及实例 函数sumif怎样用

sumif函数的使用方法及实例——简介在excel中重要的条件求和函数之一是sumif函数,相对简单又极具实用性,下面就对该条件求和公式的用法进行解释,并辅以实例近一半教大脚理解该函数的具体用法。sumif函数的使用方法及实例——工具/原料

反比例函数知识点有哪些? 反比例函数的知识点

  若k为常数,则函数y=k/x就是反比例函数,自变量和自变量的函数分别是x和y,又因为反比例函数式本身是一个分数,所以x可以是任意不等于0的实数。同时,函数式有时候也写成y=k·x^(-1)或者k=xy.反比例和正比例函数以及一次函数等都是二次函数

声明:《MySql5.1CAPI函数描述 mysql 5.7 json 函数》为网友漃瘼柒汐分享!如侵犯到您的合法权益请联系我们删除