ZBLOG

c++ mysql result

在C++中使用MySQL连接数据库,可以通过查询执行结果获取查询的返回值。

查询执行结果是一个指向MYSQL_RES类型结构体的指针。该结构体包含了查询的结果集,其中包括了每行数据和列名等信息。

以下是一段示例代码,展示如何执行SQL查询并获取结果:

#include <mysql.h>
#include <iostream>

int main() {
    MYSQL mysql;
    mysql_init(&mysql);

    if (!mysql_real_connect(&mysql, "localhost", "username", "password", "database_name", 0, NULL, 0)) {
        std::cout << "Failed to connect to database: Error: " << mysql_error(&mysql) << std::endl;
        return -1;
    }

    if (mysql_query(&mysql, "SELECT id, name FROM my_table")) {
        std::cout << "Failed to execute query: Error: " << mysql_error(&mysql) << std::endl;
        return -1;
    }

    MYSQL_RES* result = mysql_store_result(&mysql);
    if (result == NULL) {
        std::cout << "Failed to get query result: Error: " << mysql_error(&mysql) << std::endl;
        return -1;
    }

    int num_fields = mysql_num_fields(result);
    
    MYSQL_ROW row;
    while ((row = mysql_fetch_row(result))) {
        for(int i = 0; i < num_fields; i++) {
            std::cout << row[i] << "\t";
        }
        std::cout << std::endl;
    }

    mysql_free_result(result);
    mysql_close(&mysql);

    return 0;
}

上述代码中,首先创建了一个MYSQL类型变量,并初始化它。然后使用mysql_real_connect函数连接到数据库。

接着,执行了一条SQL查询语句,并通过mysql_store_result函数将结果保存在一个MYSQL_RES类型结构体中。如果返回值为NULL,则说明获取结果失败。

通过mysql_num_fields函数获取结果集的列数,然后使用mysql_fetch_row函数遍历每一行数据。每一行的数据以数组形式返回,数组的长度即为列数。

最后,记得调用mysql_free_result函数释放内存并关闭MySQL连接。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=3038

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?