这是我的应用程序中的一些示例代码:
int page_id;
string page_name;
enum COLUMNS {
PAGE_ID,
PAGE_NAME
};
if (mysql_query(conn, "SELECT page_id, page_name FROM pages")) {
exit_mysql_error(conn);
}
MYSQL_RES *res = mysql_use_result(conn);
while (MYSQL_ROW row = mysql_fetch_row(res)) {
page_id = *(int *)res[PAGE_ID];
page_name = res[PAGE_NAME];
// do some stuff where I need the page_id and page_name int/string
}
Run Code Online (Sandbox Code Playgroud)
所以imho这不是从结果中获取整数值的正确方法(但它有效)但我找不到如何做到这一点的好例子.我也很擅长用C++编程,因此欢迎任何有关代码示例的反馈.
page_id = atoi(row[0]);
page_name = row[1]; // not really sure
Run Code Online (Sandbox Code Playgroud)
您可以在这里找到有关如何在C/C++中使用Mysql API的完整示例:
获取你的字段:
while ((row = mysql_fetch_row (query_result)))
{
/* Each field in represented by the string row[i] */
/* If the field you want to extract is an int, so you need to convert it */
page_id = atoi(row[i]);
page_name = row[2];
last_filed = row[number_of_fields_in_your_table - 1];
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用查询结果构造一个缓冲区,并使用分隔符对其进行解析
while ((row = mysql_fetch_row (query_result)))
{
memset(buffer, '\0', sizeof(buffer));
for (i = 0; i < num_fields - 1; i++)
{
strncat(buffer, row[i], strlen(row[i]) + 1);
strncat(buffer, ";", 2);
}
/* After this your buffer will contain
* buffer = "page_id;page_name;...;"
* and you can retreive all fields with snprintf for example
*/
snprintf(buffer, sizeof(buffer), "%d;%s;...", page_id, page_name,...);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12198 次 |
| 最近记录: |