当我尝试使用代码时,我发现row[i]是字符串形式的第i行。但我需要使用 int 形式的数据。此外,row[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 主机”。奇怪的是,当我打印 row[i] 时,至少它会打印空格,但是当我将其复制到 char* 时,空格会以某种方式消失!所以解析它变得不可能。
我认为有一种不同的读取记录的方式,也许我忽略了API的某些部分,但我似乎找不到哪个......
编辑
我意识到我并没有忽视 API;只是 row[i] 是一个字符串数组。我仍然需要帮助从中提取个人值(value)。
最佳答案
如果你知道它会是int,你可以在现场使用atoi。例如,单位是 int,因此“从数据中选择单位”可以读入 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 ""
关于mysql - 读取 row = mysql_fetch_row(result) 返回的 mySQL 数据库的行集,这是一个字符串数组,用于从中提取各个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9751112/