MySQL 作为一款广泛使用的开源关系型数据库管理系统(RDBMS),在各类应用中都扮演着重要角色
结合 C 语言进行数据库操作,能够让我们开发出高性能、定制化的应用
本文将通过一个简单的小案例,详细介绍如何在 C 语言中运用 MySQL,涵盖连接数据库、执行 SQL语句、处理结果集以及断开连接等关键步骤
一、准备工作 在开始之前,请确保你已经安装了 MySQL 服务器和 MySQL C连接器库(MySQL Connector/C)
MySQL服务器可以从 MySQL官方网站下载并安装,而 MySQL Connector/C 通常随 MySQL 服务器一起安装,或可以从 MySQL官方网站单独下载
此外,你需要一个 MySQL 数据库和表来测试我们的 C 程序
假设你已经创建了一个名为`testdb` 的数据库,并在其中创建了一个名为`users` 的表,表结构如下: sql CREATE TABLE users( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE ); 二、安装 MySQL Connector/C 在 Linux 系统上,你可以使用包管理器安装 MySQL Connector/C
例如,在 Ubuntu 上: bash sudo apt-get update sudo apt-get install libmysqlclient-dev 在 Windows 系统上,你需要从 MySQL官方网站下载 MySQL Connector/C 并将其解压到某个目录
然后将该目录添加到系统的 PATH 环境变量中,以便编译器能够找到头文件和库文件
三、C 语言中的 MySQL 操作 下面是一个完整的 C 程序示例,它演示了如何连接到 MySQL 数据库、执行 SQL语句、处理结果集以及断开连接
c
include 如果初始化失败,该函数返回`NULL`
2.连接到数据库
c
if(mysql_real_connect(con, localhost, root, password, testdb,0, NULL,0) == NULL){
finish_with_error(con);
}
`mysql_real_connect()` 函数用于建立与 MySQL 服务器的连接 参数包括服务器地址、用户名、密码、数据库名等 如果连接失败,该函数返回`NULL`
3.执行 SQL 语句
c
if(mysql_query(con, INSERT INTO users(name, email) VALUES(John Doe, john@example.com))){
finish_with_error(con);
}
if(mysql_query(con, SELECTFROM users)) {
finish_with_error(con);
}
`mysql_query()` 函数用于执行 SQL语句 如果执行失败,该函数返回非零值
4.处理结果集
c
MYSQL_RESresult = mysql_store_result(con);
if(result == NULL){
finish_with_error(con);
}
int num_fields = mysql_num_fields(result);
MYSQL_ROW row;
while((row = mysql_fetch_row(result))){
for(int i =0; i < num_fields; i++){
printf(%s , row【i】 ? row【i】 : NULL);
}
printf(n);
}
mysql_free_result(result);
`mysql_store_result()` 函数用于从服务器获取结果集并将其存储在客户端内存中 `mysql_num_fields()` 函数返回结果集中的列数 `mysql_fetch_row()` 函数用于逐行获取结果集中的数据 `mysql_free_result()` 函数用于释放结果集占用的内存
5.断开连接
c
mysql_close(con);
`mysql_close()` 函数用于断开与 MySQL 服务器的连接
五、编译和运行程序
在 Linux 系统上,你可以使用`gcc`编译器编译该程序:
bash
gcc -o mysql_example mysql_example.c`mysql_config --cflags --libs`
其中,`mysql_config --cflags --libs` 用于获取 MySQL Connector/C 的编译和链接选项