Linux下C语言与MySQL交互---图书管理系统

本文介绍如何在Linux系统中使用C语言与MySQL数据库进行交互,实现一个简单的图书管理系统的增删改查功能。内容涵盖了解决编码问题、程序编译以及具体的数据库操作步骤。
摘要由CSDN通过智能技术生成
创建数据库 默认编码utf8
Create database book charset=utf8;
创建图书表
Create table tb_book(
ID varchar(10) primary key comment'编号',
bookname varchar(50) not null comment'图书名',
author varchar(50) not null comment'作者',
bookconcern varchar(50) not null comment'出版社')charset=utf8;

mysql> desc tb_book;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| ID          | varchar(10) | NO   | PRI | NULL    |       |
| bookname    | varchar(50) | NO   |     | NULL    |       |
| author      | varchar(50) | NO   |     | NULL    |       |
| bookconcern | varchar(50) | NO   |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
4 rows in set (0.63 sec)

解决编码:

设置数据库的编码
show variables like 'character%';
set character_set_filesystem=utf8; 

C语言连接数据库后先设置编码再查询
mysql_query(&mysql, "set names utf8");

编译

gcc -o book book.c -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient

增删改查 book.c

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "mysql.h"


/*定义数据库相关操作变量*/
MYSQL mysql;          //
MYSQL_RES *result;    //定义结果集变量
MYSQL_ROW row;        //定义行变量
char ch[2];


void ShowAll();       /*显示所有的图书信息*/
void AddBook();       /*添加图书信息*/
void ModifyBook();    /*修改图书信息*/
void DeleteBook();    /*删除图书信息*/
void QueryBook();     /*查询图书信息*/


/*显示菜单*/
void showmenu()
{
   
    printf("\n\n\n\n\n");
    printf("\t╔═══════════════════════════╗\n");
    printf("\t║Welcome To Lemon Books System║\n");
    printf("\t╠═══════════════════════════╣\n");
    printf("\t║\t 1 - 显示所有图书信息     ║\n");
    printf("\t║\t 2 - 添加图书信息         ║\n");
    printf("\t║\t 3 - 修改图书信息         ║\n");
    printf("\t║\t 4 - 删除图书信息         ║\n");
    printf("\t║\t 5 - 查询图书信息         ║\n");
    printf("\t║\t 6 - 退出                ║\n");
    printf("\t╚═══════════════════════════╝\n");
    printf("\n              ENTER YOUR CHOICE(1-6):");
    
}

void inquire()  /*询问用户是否显示主菜单*/
{
   
    printf("\t 显示主菜单?(y/n):");
    scanf("%s",ch);
    if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要显示查找到的信息*/
    {
   
        showmenu();   /*显示菜单*/ 
    }
    else
    {
   
        exit(0);
    }
}

/*显示主菜单,连接数据库*/
int main()
{
   
    int n ;   //定义变量  存储用户输入的编号
    
    mysql_init(&mysql);  //初始化mysql结构
    
    showmenu();   /*显示菜单*/ 
    
    scanf("%d",&n);/*输入选择功能的编号*/
    
    while(n)
    {
    
        switch(n)
        {
   
            case 1: 
                ShowAll();    /*调用显示所有图书数据的过程*/
                break;
            case 2: 
                AddBook();   /*添加图书信息*/
                break;
            case 3: 
                ModifyBook();     /*修改图书信息*/
                break;
            case 4:
                DeleteBook();   /*删除图书信息*/
                break;
            case 5:
                QueryBook();   /*查询图书信息*/
                break
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值