C语言实现MySQL图书管理系统(c mysql图书系统)
C语言实现MySQL图书管理系统
随着互联网的发展以及数字化时代的到来,数字化管理成为趋势,在此背景下,数字化管理软件逐渐普及。MySQL作为一项开源数据库软件,在数据存储方面有着重要的地位。本文就使用C语言与MySQL数据库相结合,实现一个图书管理系统。
我们需要先建立MySQL数据库,本系统使用的是MySQL 5.6.28版本,为了方便起见,我们采用xampp作为web服务器和MySQL服务器,下载安装以后,打开xampp的控制面板,并启动Apache和MySQL服务,启动后,我们可以通过phpMyAdmin对MySQL数据库进行管理。
接下来,我们需要配置mysql.h和mysql.lib库文件,将其加入项目中,这个工作比较简单,只需要在VC++中打开项目属性,然后在配置属性->VC++目录->包含目录中加入mysql.h所在目录,在配置属性->VC++目录->库目录中加入mysql.lib所在目录,在配置属性->链接器->输入->附加清单文件中使用mysql.lib库。
现在,我们就可以开始编写代码了,C语言连接MySQL首先需要连接MySQL服务器,连接mysql流程如下:
MYSQL mysql;
mysql_init(&mysql);
mysql_real_connect(&mysql, “localhost”, “root”, “”, “dbtest”, 3306, NULL, 0);
if (mysql_errno(&mysql)) {
printf(“connect mysql error:%s\n”, mysql_error(&mysql));
return -1;
}
上述代码中,mysql_init()函数用于初始化MYSQL对象,mysql_real_connect()函数用于连接MySQL服务器,参数分别为:服务器地址、登录用户名、登录密码、数据库名称、端口、套接字路径、标志。其中,如果连接失败,程序会输出错误信息并返回-1。
接着,我们需要定义一个结构体来存储图书的各项信息,代码如下:
typedef struct book {
int id;
char name[20];
char author[20];
char press[20];
float price;
} BOOK;
此结构体包括id、name、author、press、price五个属性。
接下来,我们开始实现图书管理系统的功能:
1. 添加图书信息
我们可以使用可视化的方式实现添加图书信息功能,实现代码如下:
void add_book(MYSQL *mysql) {
BOOK book;
printf(“add_book:\n”);
printf(“id:”);
scanf(“%d”, &book.id);
printf(“name:”);
scanf(“%s”, book.name);
printf(“author:”);
scanf(“%s”, book.author);
printf(“press:”);
scanf(“%s”, book.press);
printf(“price:”);
scanf(“%f”, &book.price);
char sql[100];
sprintf(sql, “insert into book values(%d,’%s’,’%s’,’%s’,%f)”, book.id, book.name, book.author, book.press, book.price);
int ret = mysql_query(mysql, sql);
if (ret != 0) {
printf(“insert error:%s\n”, mysql_error(mysql));
} else {
printf(“insert ok\n”);
}
}
上述代码中,我们通过scanf()函数来获取图书的具体信息,然后将其插入到MySQL数据库中。
2. 删除图书信息
同样,我们可以使用可视化的方式实现删除图书信息功能,实现代码如下:
void del_book(MYSQL *mysql) {
printf(“del_book:\n”);
printf(“id:”);
int id;
scanf(“%d”, &id);
char sql[100];
sprintf(sql, “delete from book where id = %d”, id);
int ret = mysql_query(mysql, sql);
if (ret != 0) {
printf(“delete error:%s\n”, mysql_error(mysql));
} else {
printf(“delete ok\n”);
}
}
上述代码中,我们通过scanf()函数来获取需要删除的图书id,然后在MySQL数据库中删除该图书信息。
3. 修改图书信息
同样地,我们可以使用可视化的方式实现修改图书信息功能,实现代码如下:
void mod_book(MYSQL *mysql) {
BOOK book;
printf(“mod_book:\n”);
printf(“id:”);
scanf(“%d”, &book.id);
printf(“name:”);
scanf(“%s”, book.name);
printf(“author:”);
scanf(“%s”, book.author);
printf(“press:”);
scanf(“%s”, book.press);
printf(“price:”);
scanf(“%f”, &book.price);
char sql[100];
sprintf(sql, “update book set name = ‘%s’,author = ‘%s’,press = ‘%s’,price = %f where id = %d”, book.name, book.author, book.press, book.price, book.id);
int ret = mysql_query(mysql, sql);
if (ret != 0) {
printf(“update error:%s\n”, mysql_error(mysql));
} else {
printf(“update ok\n”);
}
}
上述代码中,我们通过scanf()函数来获取需要修改的图书信息,然后在MySQL数据库中修改该图书信息。
4. 查询图书信息
查询图书信息是图书管理系统的核心功能之一,我们可以使用可视化的方式实现查询图书信息功能,实现代码如下:
void query_book(MYSQL *mysql) {
MYSQL_RES *res;
MYSQL_ROW row;
int i;
char sql[100];
sprintf(sql, “select * from book”);
int ret = mysql_query(mysql, sql);
if (ret != 0) {
printf(“query error:%s\n”, mysql_error(mysql));
} else {
res = mysql_use_result(mysql);
while ((row = mysql_fetch_row(res))) {
for (i = 0; i
printf(“%s,”, row[i]);
}
printf(“\n”);
}
mysql_free_result(res);
}
}
上述代码中,我们通过mysql_query()函数在MySQL数据库中查询所有图书信息,然后再通过mysql_fetch_row()函数和mysql_num_fields()函数获取每行数据和字段数。
至此,我们已经实现了一个基本的MySQL图书管理系统,完整代码如下: