10bet网址
MySQL 5.7 C API开发人员指南
下载本手册

5.4.48 mysql_num_fields()

unsigned int mysql_num_fields(mysql_res *结果)

通过A.mysql *反而,使用unsigned int mysql_field_count(mysql * mysql)

描述

返回结果集中的列数。

您可以从指针到结果集或连接处理程序获取列数。如果,您将使用连接处理程序mysql_store_result()或者mysql_use_result()空值(因此您没有结果集指针)。在这种情况下,您可以打电话mysql_field_count()确定是否mysql_store_result()应该产生一个非空的结果。这使客户端程序能够在不知道查询是否为a的情况下采取适当的操作选择(或者选择-like)声明。这里所示的示例说明了如何完成这一点。

第3.6.7节,“null mysql_store_result()返回MySQL_Query()成功后”

返回值

表示结果集中列数的无符号整数。

错误

没有任何。

例子

mysql_res *结果;unsigned int num_fields;unsigned int num_rows;if(mysql_query(&mysql,query_string)){//错误} else //查询成功地处理它返回的任何数据{结果= mysql_store_result(&mysql);if(结果)//存在行{num_fields = mysql_num_fields(结果);//检索行,然后调用mysql_free_result(结果)} else // mysql_store_result()返回什么;它应该有吗?{if(mysql_errno(&mysql)){fprintf(stderr,错误:%s \ n“,mysql_error(&mysql));}否则如果(mysql_field_count(&mysql)== 0){//查询不返回数据//(它不是选择)num_rows = mysql_affected_rows(&mysql);}}}

替代方案(如果您知道您的查询应该返回结果集)是替换mysql_errno(&mysql)呼叫检查是否mysql_field_count(&mysql)返回0.只有在出现问题时才会发生这种情况。