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

时间:2016-04-19 09:01:50

标签: c++ mysql database fetch

我正在尝试从我的数据库中获取数据,只给它一个ID号。我的数据库有2列,第一列是ID,第二列是图像路径。 所以如果我传递ID = 3,它应该返回与该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);

请帮助:)

2 个答案:

答案 0 :(得分:0)

您似乎在基本计算机概念方面存在一些问题。例如,有一件事与更多事情的概念。您获取一个行,但您的数据库表有多行,您的查询将返回所有行。 (没有WHERE条款)。

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

答案 1 :(得分:0)

我认为这个问题并不是很清楚。第一种情况,对于要显示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条件。在任何情况下,您都需要考虑将要返回的内容。

我没有测试我写的代码,只是编辑了一下你发布的内容(只是为了公平^^)