C语言如何获取MySQL数据:从连接到查询的完整指南

在C语言中获取MySQL数据,主要通过MySQL C Connector库实现,需依次完成环境配置、数据库连接、SQL查询执行及结果处理四个关键步骤。 确保系统已安装MySQL开发库(如Ubuntu使用sudo apt-get install libmysqlclient-dev),并在编译时链接-lmysqlclient选项,核心操作包含以下环节:

  1. 初始化与连接
    使用mysql_init()初始化连接句柄,再通过mysql_real_connect()设置服务器地址、用户名、密码及数据库名建立连接,连接失败时需用mysql_error()捕获错误。

    c 如何获取mysql数据,高效获取MySQL数据方法

  2. 执行SQL查询
    调用mysql_query()发送SQL语句(如SELECT * FROM table)。对于数据查询,必须检查返回值确认执行成功,否则需处理错误。

  3. 处理结果集
    通过mysql_store_result()获取结果集,用mysql_fetch_row()逐行提取数据。注意结果字段可用mysql_num_fields()获取列数,并确保用mysql_free_result()释放内存。

  4. 关闭连接
    最终使用mysql_close()关闭连接,避免资源泄漏。

以下为示例代码片段:

MYSQL *conn = mysql_init(NULL);
if (mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0)) {
    mysql_query(conn, "SELECT id, name FROM users");
    MYSQL_RES *result = mysql_store_result(conn);
    MYSQL_ROW row;
    while ((row = mysql_fetch_row(result))) {
        printf("ID: %s, Name: %s\n", row[0], row[1]);
    }
    mysql_free_result(result);
}
mysql_close(conn);

关键注意事项

  • 所有字符串参数需为UTF-8编码,防止乱码。
  • 生产环境应使用预处理语句(mysql_stmt_prepare())防止SQL注入。
  • 资源释放(结果集、连接)不可或缺,否则可能导致内存泄漏。

通过以上步骤,C程序可高效稳定地获取MySQL数据,适用于嵌入式系统或高性能服务端开发场景。

未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网

原文地址:https://www.html4.cn/17310.html发布于:2026-09-16