Trong MySQL C API, mysql_fetch_row trả về một đối tượng MYSQL_ROW, về cơ bản là một mảng giá trị trong hàng hiện tại.
Vì vậy, mã của bạn phải giống như sau:
mysql_query(sqlhnd, "SELECT * FROM `my_table`");
MYSQL_RES *confres = mysql_store_result(sqlhnd);
int totalrows = mysql_num_rows(confres);
int numfields = mysql_num_fields(confres);
MYSQL_FIELD *mfield;
while((row = mysql_fetch_row(confres)))
{
for(i = 0; i < numfields; i++)
{
char *val = row[i];
// do something with val...
}
}
Tốt hơn hết, đừng thực hiện hành động "CHỌN * TỪ mytable
"trong một chương trình. Sẽ tốt hơn nhiều nếu bạn đặt tên cho các trường mà bạn mong đợi, để bạn có thể chắc chắn về thứ tự của các trường được trả về.