当我尝试使用代码时,我发现row[i]是字符串形式的第i行。但我需要使用int形式的数据。此外,行[I]包含字符串形式的整行。我如何从中提取数据。我试图解析数据并将其转换为整数,但整个数据只是一个字符串,并且没有任何空格!所以我很难进行解析,因为我无法知道数据集中上一个字段的结束位置和下一个字段开始位置。
综上所述;
当我这样做时:
mysql_real_connect(conn, "localhost", "root", "abcd", "Hybr", 0, NULL, 0);
mysql_query(conn, "SELECT * FROM Data");
result = mysql_store_result(conn);
num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
{
for(i = 0; i < num_fields; i++)
{
row[i] //this is a string containing all the
//fields. I want the individual values !
}
}
我的数据34,45,主机被转换为字符串"34 45主机"。更糟糕的是,当我打印第[i]行时,它至少打印了空格,但当我将其复制到字符*中时,空格不知何故消失了!因此无法解析它。
我认为有一种不同的方式来阅读记录,也许我忽略了API的某些部分,但我似乎找不到。。。
编辑
我意识到我没有忽视API;只是行[i]是一个字符串数组。我仍然需要帮助从中提取单个值。
如果您知道字段将是int,则可以在字段上使用atoi。例如,单位是int,因此可以将"SELECT units FROM data"读取到int数组或其他任何数组中。
mysql_query conn, "SELECT units FROM data"
res = mysql_store_result(conn)
num_fields = mysql_num_fields(res)
while (row = mysql_fetch_row(res))
for i = 0; i < num_fields; i++
printf "%03i ",atoi(row[i])
puts ""