mysql - 读取 row = mysql_fetch_row(result) 返回的 mySQL 数据库的行集,这是一个字符串数组,用于从中提取各个字段

标签 mysql c database

当我尝试使用代码时,我发现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/

相关文章:

c - 具有 3 个状态的变量(其中一个状态也是变量)

mysql - 在有序的范围查询上优化 mysql 索引

php - android使用php连接mysql

c - 基本c到汇编的解释

c - Lapack 在尝试反转矩阵之前是否检查矩阵是否可逆

mysql - Crystal Report 记录过滤 每个记录有 3 种不同的方式 CR10

mysql - MySQL 数据库中的数据被截断我需要更多的想法是什么原因造成的?

python - 如何使 python_select 为 '$>python' 命令工作?

MySQL存储过程消耗1 :8 times with parameter variable

mysql - 如何在 mySQL 中搜索已知范围内的值