MYSQL_ROW
mysql_fetch_row(MYSQL_RES *result)
mysql_fetch_row()
是一个同步函数。它的异步对应物是
mysql_fetch_row_nonblocking()
,供需要与服务器进行异步通信的应用程序使用。请参阅
第 7 章,C API 异步接口。
mysql_fetch_row()
检索结果集的下一行:
在
mysql_store_result()
or 之后使用时mysql_store_result_nonblocking()
, 如果没有更多行要检索则返回mysql_fetch_row()
。NULL
当在 after 之后使用时
mysql_use_result()
, 如果没有更多的行要检索或发生错误则mysql_fetch_row()
返回 。NULL
行中值的数量由 给出
mysql_num_fields(result)
。如果
row
保存对 的调用的返回值
mysql_fetch_row()
,则指向这些值的指针的访问方式与row[0]
对
的访问方式相同row[mysql_num_fields(result)-1]
。
NULL
行中的值由
NULL
指针指示。
行中字段值的长度可以通过调用mysql_fetch_lengths()
. 空字段和包含NULL
两者的字段的长度为 0;您可以通过检查字段值的指针来区分它们。如果指针是
NULL
,则字段是NULL
;否则,该字段为空。
下一行的MYSQL_ROW
结构,或
NULL
. 返回的含义
NULL
取决于之前调用的函数
mysql_fetch_row()
:
在
mysql_store_result()
or 之后使用时mysql_store_result_nonblocking()
, 如果没有更多行要检索则返回mysql_fetch_row()
。NULL
当在 after 之后使用时
mysql_use_result()
, 如果没有更多的行要检索或发生错误则mysql_fetch_row()
返回 。NULL
要确定是否发生错误,请检查是否mysql_error()
返回非空字符串或mysql_errno()
返回非零值。
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");
}