通过传递 ID 从数据库中检索数据,C++

Retrieve Data from Database by Passing an ID, c++

我正在尝试从我的数据库中获取数据,只给它一个 ID 号。我的数据库有两列,第一列是 ID,第二列是图像路径。 所以如果我传递 ID=3,它应该 return 对应于该 ID 的路径。

我试过这样做,但我被困在查询中。

mysql_query (conn, "SELECT * FROM table" );
res = mysql_use_result(conn);
row = mysql_fetch_row(res)
ID = atoi(row[0]);
path = row[1];
printf("ID: %i", ID);

printf("Image Path: %s", path);

请帮忙:)

您似乎对基本的计算机概念有一些疑问。例如,拥有一件东西与拥有更多东西的概念。您获取 一个 行,但您的数据库 table 有多个行,而您的查询 returns 所有行。 (没有 WHERE 子句)。

显而易见的解决方案是要么获取所有行,要么(更好地)将您的查询限制为您想要的行。

我觉得问题不是很清楚。第一种情况,对于要显示的每一行 id/path:

mysql_query (conn, "SELECT * FROM table" );
res = mysql_use_result(conn);
while (row = mysql_fetch_row(res)) {
  ID = atoi(row[0]);
  path = row[1];
  printf("ID: %i", ID);
  printf("Image Path: %s", path);
}

其他可能性,您只需要一行,因为您知道要查找的 ID。然后您可以决定只检索丢失的列,例如:

mysql_query (conn, "SELECT path FROM table WHERE id=ID" );

在一些更复杂的情况下,假设即使使用 WHERE 你可能有多行,你也可以只保留第一行,例如通过在查询中添加 TOP 条件。在任何情况下,您都需要考虑真正返回的是什么。

我没有测试我写的代码,只是对你发布的内容进行了一些编辑(为了公平起见^^)