mysql_fetch_row()函数的作用

描述
注意

https://dev.mysql.com/doc/refman/8.0/en/mysql-fetch-row.html

mysql_fetch_row()是一个同步函数。它的异步副本是mysql_fetch_row_nonblocking(),供需要与服务器异步通信的应用程序使用。请参见第28.7.11节“ C API异步接口”。

mysql_fetch_row()检索结果集的下一行:

    在mysql_store_result()或mysql_store_result_nonblocking()之后使用时,如果没有更多行可检索,则mysql_fetch_row()返回NULL。

    在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;否则为0。否则,该字段为空。
返回值

下一行的MYSQL_ROW结构,即NULL。 NULL返回的含义取决于在mysql_fetch_row()之前调用了哪个函数:

    在mysql_store_result()或mysql_store_result_nonblocking()之后使用时,如果没有更多行可检索,则mysql_fetch_row()返回NULL。

    在mysql_use_result()之后使用时,如果没有更多行可检索或发生错误,则mysql_fetch_row()返回NULL。要确定是否发生错误,请检查mysql_error()返回非空字符串或mysql_errno()返回非零。
 在调用mysql_fetch_row()之间不会重置错误

    CR_SERVER_LOST

    在查询期间与服务器的连接已丢失。

    CR_UNKNOWN_ERROR

    出现未知错误。

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");
}

 

你可能感兴趣的:(dnmeet)