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()
The connection to the server was lost during the query.
An unknown error occurred.
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"); }
User Comments
MYSQL_ROW is an array of null-terminated strings. (However, you cannot treat these as null-terminated strings if field values may contain binary data, because such values may contain null bytes internally.) You can use the row data in any function expecting a null-terminated string.
Example:
MYSQL_ROW row = mysql_fetch_row(...);
unsigned long* len = mysql_fetch_lengths(...);
const char* end;
if(row[0]) {
long x = strtol(row[0], &end, 10);
if(end - row[0] != len[0]) {
// strtol found an invalid character or the data contained a null-byte.
}
}
Add your own comment.