25.2.3.21. mysql_fetch_row()
MYSQL_ROW mysql_fetch_row(MYSQL_RES
*result)
Description
Retrieves the next row of a result set. When used after
mysql_store_result()
,
mysql_fetch_row()
returns
NULL
when there are no more rows to
retrieve. When used after
mysql_use_result()
,
mysql_fetch_row()
returns
NULL
when there are no more rows to
retrieve or if an error occurred.
The number of values in the row is given by
mysql_num_fields(result)
. If
row
holds the return value from a call to
mysql_fetch_row()
, pointers to the values
are accessed as row[0]
to
row[mysql_num_fields(result)-1]
.
NULL
values in the row are indicated by
NULL
pointers.
The lengths of the field values in the row may be obtained by
calling mysql_fetch_lengths()
. Empty fields
and fields containing NULL
both have length
0; you can distinguish these by checking the pointer for the
field value. If the pointer is NULL
, the
field is NULL
; otherwise, the field is
empty.
Return Values
A MYSQL_ROW
structure for the next row.
NULL
if there are no more rows to retrieve
or if an error occurred.
Errors
Note that error is not reset between calls to
mysql_fetch_row()
Example
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");
}