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图书管理系统,完整代码如下:


数据运维技术 » C语言实现MySQL图书管理系统(c mysql图书系统)