C语言如何获取MySQL数据:从连接到查询的完整指南
在C语言中获取MySQL数据,主要通过MySQL C Connector库实现,需依次完成环境配置、数据库连接、SQL查询执行及结果处理四个关键步骤。 确保系统已安装MySQL开发库(如Ubuntu使用sudo apt-get install libmysqlclient-dev),并在编译时链接-lmysqlclient选项,核心操作包含以下环节:
-
初始化与连接
使用mysql_init()初始化连接句柄,再通过mysql_real_connect()设置服务器地址、用户名、密码及数据库名建立连接,连接失败时需用mysql_error()捕获错误。
-
执行SQL查询
调用mysql_query()发送SQL语句(如SELECT * FROM table)。对于数据查询,必须检查返回值确认执行成功,否则需处理错误。 -
处理结果集
通过mysql_store_result()获取结果集,用mysql_fetch_row()逐行提取数据。注意结果字段可用mysql_num_fields()获取列数,并确保用mysql_free_result()释放内存。 -
关闭连接
最终使用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





