通过传递 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 条件。在任何情况下,您都需要考虑真正返回的是什么。
我没有测试我写的代码,只是对你发布的内容进行了一些编辑(为了公平起见^^)
我正在尝试从我的数据库中获取数据,只给它一个 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 条件。在任何情况下,您都需要考虑真正返回的是什么。
我没有测试我写的代码,只是对你发布的内容进行了一些编辑(为了公平起见^^)