PDF(美国高级主任)- 1.1 mb
PDF (A4)- 1.1 mb
mysql_num_fields(MYSQL_RES *result)
通过MYSQL *
参数,使用unsigned int mysql_field_count(MYSQL)
.
返回结果集中的列数。
可以从指向结果集的指针或指向连接处理程序的指针获取列数。您将使用连接处理程序,如果mysql_store_result ()
或mysql_use_result ()
返回零
(因此没有结果集指针)。在这种情况下,你可以打电话mysql_field_count ()
以确定是否mysql_store_result ()
应该产生一个非空的结果。这使得客户端程序可以采取适当的操作,而不需要知道查询是否是选择
(或选择
类)的声明。这里显示的示例说明了如何实现这一点。
看到第3.5.7节,“NULL mysql_store_result() Return After mysql_query() Success”.
MYSQL_RES *结果;Unsigned int num_fields;Unsigned int num_rows;如果(mysql_query(&mysql,query_string)) {// error} else //查询成功,处理它返回的任何数据{result = mysql_store_result(&mysql);If (result) //有行{num_fields = mysql_num_fields(result);//检索行,然后调用mysql_free_result(result)}否则// mysql_store_result()返回什么都没有;应该吗?{if (mysql_errno(&mysql)) {fprintf(stderr, "Error: %s\n", mysql_error(&mysql));} else if (mysql_field_count(&mysql) == 0){//查询不返回数据//(它不是SELECT) num_rows = mysql_affected_rows(&mysql);}}}
的方法(如果您知道您的查询应该返回一个结果集)是替换mysql_errno (mysql)
打电话检查是否mysql_field_count (mysql)
返回0。只有在出现问题时才会发生这种情况。