使用C语言连接MySQL

在C语言中连接MySQL数据库,通常需要使用MySQL提供的C API。以下是使用C语言连接MySQL数据库的基本步骤和示例代码:

步骤 1: 安装MySQL C API

首先,确保你的系统上安装了MySQL数据库,并且安装了MySQL C API库。在大多数Linux发行版中,你可以通过包管理器安装libmysqlclient-dev或mysql-devel包。

步骤 2: 包含头文件

在你的C程序中包含MySQL C API的头文件。

#include <mysql.h>

#include <stdio.h>

#include <stdlib.h>

步骤 3: 初始化MySQL连接

使用mysql_init函数初始化一个MySQL连接对象。

MYSQL *conn = mysql_init(NULL);

if (conn == NULL) {

fprintf(stderr, "MySQL initialization failed\n");

exit(1);

}

步骤 4: 连接到MySQL服务器

使用mysql_real_connect函数连接到MySQL服务器。

if (mysql_real_connect(conn, "hostname", "username", "password", "database_name", 0, NULL, 0) == NULL) {

fprintf(stderr, "MySQL connection error: %s\n", mysql_error(conn));

mysql_close(conn);

exit(1);

}

步骤 5: 执行SQL查询

使用mysql_query函数执行SQL查询。

if (mysql_query(conn, "SELECT * FROM table_name")) {

fprintf(stderr, "MySQL query error: %s\n", mysql_error(conn));

mysql_close(conn);

exit(1);

}

步骤 6: 处理查询结果

使用mysql_store_result和mysql_fetch_row函数处理查询结果。

MYSQL_RES *result = mysql_store_result(conn);

MYSQL_ROW row;

while ((row = mysql_fetch_row(result))) {

printf("%s \t %s \t %s\n", row[0], row[1], row[2]);

}

mysql_free_result(result);

步骤 7: 关闭连接

完成操作后,关闭MySQL连接。

mysql_close(conn);

完整示例代码

#include <mysql.h>

#include <stdio.h>

#include <stdlib.h>

int main() {

MYSQL *conn;

MYSQL_RES *result;

MYSQL_ROW row;

conn = mysql_init(NULL);

if (conn == NULL) {

fprintf(stderr, "MySQL initialization failed\n");

exit(1);

}

if (mysql_real_connect(conn, "hostname", "username", "password", "database_name", 0, NULL, 0) == NULL) {

fprintf(stderr, "MySQL connection error: %s\n", mysql_error(conn));

mysql_close(conn);

exit(1);

}

if (mysql_query(conn, "SELECT * FROM table_name")) {

fprintf(stderr, "MySQL query error: %s\n", mysql_error(conn));

mysql_close(conn);

exit(1);

}

result = mysql_store_result(conn);

while ((row = mysql_fetch_row(result))) {

printf("%s \t %s \t %s\n", row[0], row[1], row[2]);

}

mysql_free_result(result);

mysql_close(conn);

return 0;

}

编译和链接

编译时,需要链接MySQL C API库:

gcc -o mysql_example mysql_example.c $(mysql_config --cflags --libs)

请确保将mysql_example.c替换为你的源文件名,并且mysql_config命令能够正确执行(这取决于你的MySQL安装和配置)。

以上是一个基本的C语言连接MySQL的示例。在实际应用中,你可能需要处理更复杂的SQL语句、事务、错误处理等。

相关推荐
Natsume171033 分钟前
嵌入式开发:GPIO、UART、SPI、I2C 驱动开发详解与实战案例
c语言·驱动开发·stm32·嵌入式硬件·mcu·架构·github
shaun20011 小时前
华为c编程规范
c语言
MeshddY1 小时前
(超详细)数据库项目初体验:使用C语言连接数据库完成短地址服务(本地运行版)
c语言·数据库·单片机
森焱森2 小时前
无人机三轴稳定化控制(1)____飞机的稳定控制逻辑
c语言·单片机·算法·无人机
凌肖战2 小时前
力扣网C语言编程题:快慢指针来解决 “寻找重复数”
c语言·算法·leetcode
猫猫的小茶馆6 小时前
【STM32】预分频因子(Prescaler)和重装载值(Reload Value)
c语言·stm32·单片机·嵌入式硬件·mcu·51单片机
JeffersonZU6 小时前
Linux/Unix文件IO(文件描述符、原子操作、文件数据结构、open、read、write、fcntl、dup)
linux·c语言·unix·gnu
智者知已应修善业9 小时前
【51单片机用数码管显示流水灯的种类是按钮控制数码管加一和流水灯】2022-6-14
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
森焱森19 小时前
无人机三轴稳定控制(2)____根据目标俯仰角,实现俯仰稳定化控制,计算出升降舵输出
c语言·单片机·算法·架构·无人机
楼田莉子19 小时前
数据结构学习之栈
c语言·数据结构·笔记·学习·算法